次: Frame Info, 前: Backtrace, 上: Stack
スタックやユーザ・プログラム内の他のデータを調べるためのほとんどのコマンドは、 それが実行された時点において選択されているスタック・フレーム上で動作します。 以下に、 スタック・フレームを選択するためのコマンドを列挙します。 どのコマンドも、 それによって選択されたスタック・フレームに関する簡単な説明を最後に表示します。
frame
nf
nmain
のフレームです。
frame
addrf
addrSPARCアーキテクチャでは、
フレームを任意に選択するには、
フレーム・ポインタ、
スタック・ポインタの2つのアドレスをframe
に指定する必要があります。
MIPS、 Alphaの両アーキテクチャでは、 スタック・ポインタ、 プログラム・カウンタの2つのアドレスが必要です。
29kアーキテクチャでは、 レジスタ・スタック・ポインタ、 プログラム・カウンタ、 メモリ・スタック・ポインタの3つのアドレスが必要です。
up
ndown
ndown
の省略形はdo
です。
これらのコマンドはいずれも、 最後にフレームに関する情報を2行で表示します。 1行めには、 フレーム番号、 関数名、 引数、 ソース・ファイル名、 そのフレーム内において実行停止中の行番号が表示されます。 2行めには、 実行停止中のソース行が表示されます。
以下に、 例を示します。
(gdb) up #1 0x22f0 in main (argc=1, argv=0xf7fffbf4, env=0xf7fffbfc) at env.c:10 10 read_input_file (argv[i]);
この情報が表示された後で、
list
コマンドを引数なしで実行すると、
フレーム内で実行停止中の行を中心に10行のソース行が表示されます。
See Printing source lines。
up-silently
ndown-silently
nup
コマンド、
down
コマンドの変種です。
相違点は、
ここに挙げた2つのコマンドが、
新しいフレームに関する情報を表示することなく実行されるという点にあります。
これらは、
情報の出力が不必要で邪魔ですらある、
GDBのコマンド・スクリプトの中での使用を主に想定したものです。