galloc - Gachapin alloc というのを作りました

をみて自分も試してみたくなったので書きました。

malloc(3)するとガチャピンが、free(3)するとムックがSTDERRに報告してくれます。便利!!1

$ make galloc.so
$ LD_PRELOAD=./galloc.so ls # or arbitrary command

Gachapin .oO(malloc(568) = 0x172e040)
Gachapin .oO(malloc(120) = 0x172e280)
Mukku    .oO(free = 0x172e040)
Gachapin .oO(malloc(6) = 0x172e040)
Mukku    .oO(free = 0x172e040)
...


_init()は共有ライブラリが読まれると自動で実行されるそうなのですが、mallocの置き換えではうまくいかなかった(SEGV)んで初期化チェック&初期化関数の実行するようにしてます。


なお、mallocまわりのトレーサーを書きたいときは、このへん使ったほうがいいと思います。