mod_uploaderの作者さんがまとめている開発Tips(http://acapulco.dyndns.org/mod_uploader/module_dev.htm)にあったデバッグ方法を試してみました。

Valgrind

http://valgrind.org/

Valgrindはメモリ周りのバグや、スレッド系のバグを自動的に検出してくれるツールです。

インストールは

./configure make make install

で完了です。

a.out(-gオプションでコンパイルしてください)のメモリ周りのチェックを行う場合は

valgrind --leak-check=yes a.out

とやると、こんな結果が出力されてメモリリークしている場所がずばり表示されます。

==19182== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1 ==19182== at 0x1B8FF5CD: malloc (vg_replace_malloc.c:130) ==19182== by 0x8048385: f (a.c:5) ==19182== by 0x80483AB: main (a.c:11)