ステップするたびにn
、次に実行するステートメントが出力されます。
n
実際にコードをステップ実行せずに、 を入力したかのように、次のステートメントが実行されるのを確認するにはどうすればよいですか?
現在、私は を使用しています。where
これにより、次のステートメントの行番号が得られ、list
ソース コードを表示するために使用できます。必要なものを取得するには、2 つの別個のコマンドが必要ですか?
「フレーム」コマンドを試してください。次のようなものが表示されます。
(gdb) frame
#0 main () at dummy.c:11
11 FILE*f = fopen("somefile","r");
(gdb)
ホームディレクトリでmacro
自分自身を定義します。.gdbinit
define shownext
where
list
end
さて、私が述べたことがうまくいくかどうかはわかりませんが、このようなことを行う方法についてはこちらをご覧ください。
gdb が Python をサポートして構築されている場合、このlist.current.pyスクリプトは、必要な処理を実行する新しいlist-current gdb コマンドを追加します。
サンプル セッション:
$ gdb -x list-current.py /bin/true
(gdb) start
Temporary breakpoint 1 at 0x4014c0: file true.c, line 59.
Starting program: /usr/bin/true
Temporary breakpoint 1, main (argc=1, argv=0x7fffffffde88) at true.c:59
59 if (argc == 2)
(gdb) list-current
59 if (argc == 2)
(gdb) list-current 3
59 if (argc == 2)
60 {
61 initialize_main (&argc, &argv);
(gdb) list-current -2
58 argument. */
59 if (argc == 2)
(gdb)