Mitsukiの魔法実験室

Mitsuki's Magic Laboratory
Since 2002.09.14

関数の呼び出しをトレースする

Posted at 2006/08/04 23:32 in Programming / Comments (0)

 謎現象のデバッグ時や、挙動のよくわからないソースをおいかけている時など、どういう順番で関数が呼ばれているのがを可視化(ログ化)できればなーと思うことがよくあるのですが、ちょっとした方法を思いついたので試してみようかな……とおもったら、gccなら -finstrument-functionsというオプションでそういう仕組みが実装可能 らしいです。流石gcc。
 VCでもBoundCheckerを使えば可能らしいですけど。……そんなもん個人で買えるかっ。

 ちなみに上で書いた「ちょっとした方法」というのは、「.o(.obj)のFixUp情報を書き換えて、関数コールの前後で指定関数を呼ぶproxyコードを呼ぶようにしてから、リンクする」という激しく力業な方法。gccやBoundCheckerも多分似たようなことをしているのでしょうけど(勘)、libbfdが使える環境なら自前でも楽勝で書けそう?

ただし、わたしのターゲットは16bit OMFですが……orz

Comment

Post a comment



(任意)

(必須。入力しないと投稿できません)






TrackBack ping me at

http://mitsuki.engawa.org/Programming/20051207_calltrace.trackback