私は信号処理の研究を行っているのですが、ここしばらくそのプログラムでバグに見舞われています。C++の練習がてら組んでいたのですが、どうしてもバグの原因が分からなかった為一旦MATLABクローンのOctaveで組み直し、そちらでは意図した動作をしてくれていました。
今のところはシミュレーションをやってその結果を考察するのが私の仕事なのでOctaveでなんの支障もないのですが、やはり後々を見据えるとC++などの言語で組んでおいた方が後でいろいろと拡張できそうだ、と考え、バグの洗い出しを始めた訳なんです。
でもって、なんかいいデバッグツールなんかないかなーと探していたら、たまたま出くわしたのがValgrind。メモりリークや初期化前の変数で条件分岐しているなどをチェックし、警告してくれるツールとのことで、「これや!!!」と思って使ってみたのですが、ところがどっこいエラーメッセージの意味が分からない(苦笑)
残念ながら私が探した限り日本語での有用なドキュメントがなく、英語サイトは訳しきらずOrz 途方にくれているとどうやらValgrindにはGUIツールが付いているらしいということを知り、とりあえず試してみる。でも結局使い方が分からずOrz
そうこうしているうちに、先輩にも手伝っていただきながらバグを洗い出していった結果、やはりソースに問題が。メモリリークというよりも(それも実は1つあったw)組み方の方に問題が多々ありそう…。
ほんと、ツールに振り回されて肝心のソースの方が疎かになってしまっているもので…、だめですねぇ。やはりここはツールに振り回されることなくしっかりとデバッグしないとだめですね。ツールは確かに便利ですけど、生半可な知識で使うと余計な時間を喰ってしまいます。
ん〜、分かっちゃいるんですけどねぇ、今のうちに覚えてしまえば後が楽だろうと思ってついチャレンジしちゃうんですよね…。
でもまずはこのソースのバグ洗い出しが先決。さーしばらくはソースと格闘だ!!!Orz
0 件のコメント:
コメントを投稿