[Armadillo:05479] みなさんが使っているデバッグの手法を教えて

Yasushi SHOJI email@hidden
2010年 7月 28日 (水) 12:02:40 JST


At Wed, 28 Jul 2010 11:12:58 +0900,
s.maruyama wrote:
> 
> デバッグの方法について、ご教授ください。

私も知りたかったので、サブジェクト変えました。

みなさん、デバッグの時ってどんなワザを使っているのでしょうか?
ハードがらみ、スレッド、メモリリーク、メモリ破壊など
いろいろなバグがあるので、なんとも言えないかもしれませんが、
情報共有できると良いですよね。

個人的に一番使うツールは、printf()と gdbの back traceです。(^^;
あとは想像(妄想)力。



たとえば、「Debug Hacks」という本[1]は、Linuxを中心に書いてあるので、
Armadilloで開発するひとには、良いなぁと思ったりします。ただ、「初心者に
優しくない」というコメント[2][3]があるようですね。

本の中でも紹介されていますが、メモリがらみの場合、私は valgrind[4]とい
うツールを使います。メモリ破壊もリークも見てくれるので、アプリのデバッ
グをするにはとても便利です。

デバッグではないのですが、初めてみるプログラムの場合も gdbで動作を追っ
てみたりすることがあります。とくに読む気にならないコードの場合(^^;
こっちは訳本なのですが、「実践 デバッグ技法」という本[5]に載っている
DDD[6]というツールは、データを可視化してくれるのでデータ構造を理解する
ような場合は良いかもしれません。古い感じのUIがイマイチですが…。



ちょっと外れますが、C以外の言語でプログラムを書く場合や、新しい言語を学
ぶときに、個人的に最初に探す関数は「データをダンプ」してくれる関数です。
Rubyなら「p」、PHPなら「var_dump」とか。やっぱり printf()から離れ
られないだけなのか…。(^^;


ちなみに、Armadillo用のコードを書くときも、最初は PCで動かしながら書き
ます。ハードや速度に依存するところ以外は、全部書いているかも。そのうち
Armadilloでも動かしはじめますが、最初は Debianが動いている Armadillo の
方が多いです。なぜかと言うと、上記で書いたようなツールを入れるのが簡単
だからです。

	sudo apt-get install valgrind

とか。個人的に Armadillo 上でコンパイルはしてません。している人はわりと
いるみたいですけど。(良く聞かれます)

デバッグの話ではなく、開発環境の話になってきたので、このへんでやめます。


[1]: http://www.amazon.co.jp/dp/4873114047
[2]: http://www.amazon.co.jp/dp/4873114047#R3KQHGJTKBPAH
[3]: http://d.hatena.ne.jp/hyoshiok/20090503#c1242071118
[4]: http://valgrind.org/
[5]: http://www.amazon.co.jp/dp/4873114063
[6]: http://www.gnu.org/software/ddd/
-- 
           yashi




armadillo メーリングリストの案内