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とかを保持する必要もなくなるはず。

 以上は単なる感想でして、多分に個人的好みが入っていますので、おかしいと思ったら適当に流してやってください。