2014年4月21日 (月曜日)

17:48:11 # Life gdbで関数が定義されているファイルを探す。 python バインディングがあるんだから簡単に見つかるんじゃないのといわれて調べてみたらたしかに簡単にわかった。 gdb のプロンプトからpython print gdb.lookup_global_symbol("main").symtab。 gdb.lookup_global_symbol でグローバルシンボルを解決、Symbolオブジェクトが帰ってくる。デフォルトでそれは関数名なのでmainになるわけなんだけど、それじゃおもしろくないので、symtab メンバーをみるとシンボル情報が出てくる。 symtab.fullname() がフルパスでのファイル名。 行数もどっかにあると思うんだけどなぁ。なんかあたらしいgdbだとsymtab.linetable()があるっぽい。

Junichi Uekawa

$Id: dancer-diary.el,v 1.94 2009/10/21 14:02:48 dancer Exp $