我正在使用 gdb 调试 C 项目源代码。我编译如图:
./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 文件的主要函数处设置了断点,而不是在我的源代码中。
如何解决我的第一个问题?
只是好奇,如果 Cygwin 文件和我的源代码中有相同的函数名称,如何避免第二个问题?
最佳答案
当你编译你的.c
文件时,确保你使用:
gcc filename.c -g
gdb <binary name>
是否搜索加载调试符号?
如果不是:
gdb) symbol-file <path-of-symbol-file>
在obj目录下可以找到符号文件
关于c - 没有名为 main.c 的源文件。 gdb断点设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19151643/