LeakTracer

Cのメモリリークを突き止めるためにLeakTracerを導入してみた。
デバッガすらも使えない不慣れなLinux環境における並列プログラムのメモリリークを調べられるのは嬉しい。

基底クラスのデストラクタをvirtual宣言していなかったり、
newしたままdeleteし忘れていて発生していたメモリリークを修正した。


ダウンロードして、解凍して、フォルダに移動した後にサンプルプログラムで
$ g++ -g -o test.exe test.cc LeakTracer.o
$ ./test.exe
$ ./leak-analyze ./test.exe
で動作確認。その後には、自分のプログラムにも同様の作業を行ってやれば良い。
MakefileにLeakTracer.oへのリンクを追加して、leak.ou*をcleanする設定のみを追加。

スキルがあれば、プロセス分だけ生成されるleak.outファイルの生成場所を別ディレクトリに設定し、
更に改名して書き出したいのだけれども、当分の間はこれで満足。


Radium Software Developmentの説明が分かりやすい。
私の環境では$ gcc -g -oでは、デバッグオプションが上手く生成されなかったので、$g++ -g -oで実行した。