2011-06-22 6 views
10

私は、クラッシュを引き起こす原因を見るのに十分なコンテキストを得るために、ライブラリコードの大きな断片を逆アセンブルしなければならないのは本当に面倒です。私はちょうどobjdumpアドレスを手渡すことができ、それが私のための関数の境界を見つけることができる方法はありますか?objdumpにアドレスを与えて、それを含む関数を逆アセンブルすることはできますか?

EDIT:それでも、私はスタックトレース全体を逆アセンブルすることはできますか?

+0

によってマークされていると仮定すると、それはret(q)を見つけるまで0x42から始まるリストディスアセンブリを出力しますか? (あるいはコアやgdbを使わずにクラッシュアドレスをどうやって解決するのですか?) – Rup

+0

クラッシュがクラッシュコアを生成しているかどうかは分かりません。これはカーネルのデバッグに向かい、クラッシュするライブラリはブートプロセスの早い段階で実行されています。 – Alex

答えて

14

これはおそらく何か?

$ objdump -S --start-address=0x42 foo.o | awk '{print $0} $3~/retq?/{exit}' 

それはあなただけでGDBにクラッシュコアをロードし、そこに探検することはできません境界ret(q)

2

objdump --start-address=おそらく?

関連する問題