Go to the first, previous, next, last section, table of contents.

バックトレース

バックトレースは、どのようにしてプログラムがここに至ったのかという 概略です。これは、カレントで実行している (フレームゼロの) フレームから 開始して、次にこのコール元 (フレーム1)、そして更に続くスタックといった ように、多くのフレームを1行に1フレームずつ表示します。

backtrace
bt
スタック全体のバックトレースを表示します: スタック上の全てのフレームを、1行に1フレームずつ表示します。 あなたは、通常 Control-C に設定されているシステム割り込み文字を 入力することによって、いつでもバックトレースを停止させることができます。
backtrace n
bt n
上と似ていますが、最深部から n フレーム表示します。
backtrace -n
bt -n
上と似ていますが、一番外から n フレーム表示します。

`where'`info stack' が、`backtrace' に 別名定義 (alias) されています。

バックトレースが表示する各々の行には、フレーム番号、関数名、そして プログラムカウンタ値が表示されます。

もし、ソースファイルと共に関数のシンボルテーブル・データがフルに 読み込まれたような状況にあれば、バックトレースはソースファイル名と 行番号、そして関数の引数を表示します。(プログラムカウンタ値は、行番号を 持つコードの先頭の場合、省略されます。)

もし、ソースファイルのシンボルデータがフルに読み込まれた状態でない 場合は、スキャンのみ実行され、この拡張情報は省略符号 (...) に置き換え られます。あなたはまた、フレームを選択することで、フレームに関する ソースファイル上のシンボルデータを強制的に読み込ませることができます (See section フレームの選択)。

ここにバックトレースの例を示します。これは、`bt 3' というコマンドに よって生成されたもので、最深部から3つのフレームを表示しています。

#0  rtx_equal_p (x=(rtx) 0x8e58c, y=(rtx) 0x1086c4) (/gp/rms/cc/rtlanal.c line 337)
#1  0x246b0 in expand_call (...) (...)
#2  0x21cfc in expand_expr (...) (...)
(More stack frames follow...)

expand_callexpand_expr という関数は、シンボルの詳細に 関するファイルがまだ読み込まれていないものです。全ての詳細は、 rtx_equal_p という関数上に表れており、それは `rtlanal.c' と いうファイルの中に含まれています。この関数の引数である xy は、その値が表示されています。


Go to the first, previous, next, last section, table of contents.