アドレスから関数名、ファイル名、行番号を簡単に取得できる方法
objdumpでも可能だけどアドレスが分かっているならばaddr2lineの方が簡単。
ただし、デバッグ情報がいる。
$ gcc -g -o foo foo.c
hogeという関数があるとする。
80483c5はhogeの中のアドレス。
$ addr2line -e foo -f 80483c5 hoge /home/longicorn/tmp/foo.c:3
0x80483c5は関数名はhoge()で、foo.cの3行目と言う意味。
仕組みはBFDと言うのを使っていて、libbfdを使えば自分で同じ事が出来るらしい
いままでobjdumpしか使って無かった orz。
これでデバッグが多少楽になる。