バックトレースとは、 ユーザ・プログラムが現在いる箇所にどのようにして到達したかを示す要約情報です。 複数のフレームが存在する場合、 1フレームの情報を1行に表示します。 現在実行中のフレーム (番号0のフレーム) を先頭に、 それを呼び出したフレーム (番号1のフレーム) を次行に、 以降、 同様にスタックをさかのぼって情報を表示します。
backtrace
bt
システムの割り込み文字
(通常は、Ctrlキーを押しながらCを押す)
によって、
いつでもバックトレースを停止することができます。
backtrace
nbt
nbacktrace
コマンドと似ていますが、
最下位のフレームから数えてn個のフレームだけが表示されます。
backtrace -
nbt -
nbacktrace
コマンドと似ていますが、
最上位のフレームから数えてn個のフレームだけが表示されます。
backtrace
の別名としては、
ほかにwhere
やinfo stack
(省略形はinfo s
)
があります。
backtrace
コマンドの出力結果の各行に、
フレーム番号と関数名が表示されます。
set print address off
コマンドを実行していなければ、
プログラム・カウンタの値も表示されます。
backtrace
コマンドの出力結果では、
関数への引数に加えて、
ソース・ファイル名や行番号も表示されます。
プログラム・カウンタが、
行番号で指定される行の最初のコードを指している場合、
その値は省略されます。
以下にbacktrace
の例を示します。
これは、
`bt 3'の出力であり、
したがって最下位のフレームから3フレームが表示されています。
#0 m4_traceon (obs=0x24eb0, argc=1, argv=0x2b8c8) at builtin.c:993 #1 0x6e38 in expand_macro (sym=0x2b600) at macro.c:242 #2 0x6840 in expand_token (obs=0x0, t=177664, td=0xf7fffb08) at macro.c:71 (More stack frames follow...)
番号0のフレームを表示する行の先頭には、
プログラム・カウンタの値がありません。
これは、
builtin.c
の993
行めの最初のコードにおいて
ユーザ・プログラムが停止したことを表わしています。