memprof
それmemprofでできるよ。
memprofはOwen Taylorの作ったメモリリークチェックツールで、GUIがついててどこからリークしてるのか教えてくれる。しかもvalgrindと違ってそんなに重くないので、お勧めです、と書きたいところなのですが、困ったことにmemprofはいつごろからか動かなくなってしまったので、新しい環境ではおすすめできません。どうもGlibc-2.3.4あたりかららしい。残念。
と、ここで話が終わる訳ではなく、久々に本家をチェックしてみると、なんと4年ぶりの新バージョンリリースが。./configure;makeで普通に動きました。やや感激気味。
ついでにコードを見たのでちょっと感想を。
- new_scrolled_text_bufferの型はShikiTabInfo *new_scrolled_text_buffer(void)あたりがよいのではないか
- delete_event_handlerのプロトタイプ宣言でbufferの型はGtkTextBuffer*のはず。(私も身に覚えがあります。)
- remove_tabpageでShikiTabInfoの中身を解放してない
- GtkFileChooser使った方が良いのでは?
- 現在のタブをキーに情報を取ってきたいなら、gtk_notebook_get_nth_pageとg_object_get/set_dataでできます。(たぶん、あまりお勧めできる方法ではありませんが。)
- そうすると、delete_handlerにtext_bufferを渡す必要は無くなるはずので、delete_handler_idとかを保持する必要もなくなるはず。
以上は単なる感想でして、多分に個人的好みが入っていますので、おかしいと思ったら適当に流してやってください。