我正在使用gdb调试c项目源代码。我编译如下:
./configure --enable-debug CFLAGS="-g -o0"
make --debug=a
我想调试在特定文件停止。所以当我用
(gdb) break main.c:672
上面写着:
No source file named main.c.
即使当我传递特定的函数名(在main.c文件中)来中断。它说:这样的功能没有定义。
我当前的目录有这个主.c文件。我在windows上使用cygwin。当我使用
(gdb) break main
它在cygwin文件的一个主要函数上设置了断点,而不是在我的源代码中。
我怎样才能解决我的第一个问题?
只是好奇,如果cygwin文件和我的源代码中有相同的函数名,如何避免第二个问题?
最佳答案
如果您使用-g
进行编译,但仍然无法设置断点,请尝试在raise(SIGTRAP)
中添加main()
,在gdb中运行该进程,然后在该进程命中SIGTRAP
后再次设置所需的断点。
关于c - 没有名为main.c的源文件。 gdb断点设置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19151643/