8

GDB は next/stop の後に行ソースを表示せず、次のように行番号とソース ファイルのみを表示します。

(gdb) n
7   in test/test.c

一方、次のように現在の行を表示することを期待しています:

(gdb) next
17        char * good_message = "Hello, world.";

これを行うのに役立つ.gdbinitの設定はありますか?

4

2 に答える 2

5

一方、このように現在の行を表示することを期待しています

などの多くのプラットフォームでELFは、コンパイラはソースへのパス (このtest/test.c場合) とコンパイル ディレクトリの両方を記録するため、どのディレクトリで呼び出すかに関係なく、GDB はソースを表示できます。

しかし、多くのプラットフォームでは柔軟性が低く、コンパイル ディレクトリを記録する場所がありません。そのようなプラットフォーム (AIX など) では、コンパイル ディレクトリで GDB を開始するか、directoryコマンドでソースを探す場所を指定する必要があります。

于 2012-09-06T03:34:22.767 に答える
2

おそらく私の答えは完璧な解決策ではないかもしれませんが、ソース プログラムをコンパイルする方法は重要です。たとえば、私の場合、実行してg++ fib.cpp -o fibから実行しようとするgdb fibと、ソースコードがlist. デバッグフラグg++ -g fib.cpp -o fibを使用してから gdb で実行すると、問題が解決しました。

于 2016-11-22T04:17:21.520 に答える