2010-11-27 17 views
3

私はカーネルをデバッグしています。明らかに、ARM上でフォルトハンドラがどのように動作するかは、__pabt_usrの層数が,で実際のコードに達する前です。とにかく、私はエミュレータを介してこのデバッグを遠隔操作しています。ビットごとにトレースを取得するのは遅いです。一度にすべてを取り出す方法はありますか?gdbのスタックトレース全体をワンショットで取得するにはどうすればよいですか?

EDIT:スタックトレースを逆に印刷することも役に立ちます。

+0

あなたの質問は分かりませんが、['bt'](http://www.circlemud.org/cdp/gdb/gdb_7.html#SEC42)や' bt full' ? –

+0

@FrédéricHamidi:bt fullはローカル変数や関数引数なども提供しますが、gdbが通常示すものより多くのフレームを取得したかったのです。 – terminus

答えて

5

フルバックトレースを与えることができるかどうかはわからないが、あなたはより多くのフレームを取得するには「BT」に数値引数を与えることができます:

(gdb) bt 10 
#0 x() at test.c:4 
#1 0x080483bf in x() at test.c:4 
#2 0x080483bf in x() at test.c:4 
#3 0x080483bf in x() at test.c:4 
#4 0x080483bf in x() at test.c:4 
#5 0x080483bf in x() at test.c:4 
#6 0x080483bf in x() at test.c:4 
#7 0x080483bf in x() at test.c:4 
#8 0x080483bf in x() at test.c:4 
#9 0x080483bf in x() at test.c:4 
(More stack frames follow...) 

これはまた、最も外側に与える負の数、で動作しますフレーム:

(gdb) bt -2 
#122467 0x080483bf in x() at test.c:4 
#122468 0x080483bf in x() at test.c:4 

最後の数のフレームが必要な場合は、負の数を使用できます。

関連する問題