21

C プロジェクトのソース コードのデバッグに gdb を使用しています。次のようにコンパイルします。

./configure --enable-debug CFLAGS="-g -o0" 
make --debug=a

特定のファイルでデバッグを停止したい。したがって、使用してブレークポイントを設定すると

(gdb) break main.c:672

それは言います:

No source file named main.c.

特定の関数名 (main.c ファイル内) を break に渡す場合でも。それは言う:そのような関数は定義されていません。

現在のディレクトリには、この main.c ファイルがあります。WindowsでCygwinを使用しています。を使用してブレークポイントを設定すると

(gdb) break main

私のソースコードではなく、Cygwinファイルのメイン関数にブレークポイントを設定しました。

  1. 最初の問題を解決するにはどうすればよいですか?

  2. Cygwinファイルとソースコード内に同じ関数名がある場合、2番目の問題を回避するにはどうすればよいですか?

4

5 に答える 5

13

ファイルをコンパイルするときは.c、必ず次を使用してください。

gcc filename.c -g 

gdb <binary name>

ロード デバッグ シンボルの検索が完了したかどうか。

そうでない場合:

gdb) symbol-file <path-of-symbol-file>

objディレクトリにシンボルファイルがあります

于 2013-10-03T05:52:48.023 に答える
3

私も以前に同様の問題に遭遇しました。.metadataフォルダーを削除して、特定のプロジェクトを再度インポートしたところ、うまくいきました。

于 2016-07-10T09:09:21.187 に答える
2

GDB を使用する必要があるときはいつでも、コマンド ラインで次のように入力します。

gcc -g -o outputfile sourcefile.c

今すぐ入力

gdb -tui outputfile

次に、break コマンドを入力します。

于 2013-10-03T06:04:37.830 に答える