ars*_*lan 16 c cygwin gdb breakpoints
我正在使用gdb来调试C项目源代码.我编译如下:
./configure --enable-debug CFLAGS="-g -o0"
make --debug=a
Run Code Online (Sandbox Code Playgroud)
我想在特定文件中调试stop.所以当我通过使用设置断点时
(gdb) break main.c:672
Run Code Online (Sandbox Code Playgroud)
它说:
No source file named main.c.
Run Code Online (Sandbox Code Playgroud)
即使我传递特定的函数名称(在main.c文件中)来打破.它说:这样的功能没有定义.
我当前的目录有这个main.c文件.我在Windows上使用Cygwin.当我使用时设置断点
(gdb) break main
Run Code Online (Sandbox Code Playgroud)
它在Cygwin文件的主要功能中设置了断点,而不是在我的源代码中.
我怎样才能解决我的第一个问题?
只是好奇,如果在Cygwin文件和我的源代码中有相同的函数名称,如何避免第二个问题?
编译.c文件时,请确保使用:
gcc filename.c -g
gdb <binary name>
Run Code Online (Sandbox Code Playgroud)
是否完成了负载调试符号的搜索?
如果不:
gdb) symbol-file <path-of-symbol-file>
Run Code Online (Sandbox Code Playgroud)
你可以在obj目录中找到符号文件