使用gdb调试C程序,但无法正确定位源文件
我使用命令使用gdb调试C程序,但无法正确定位源文件,c,gdb,C,Gdb,我使用命令gcc-std=gnu99-g-pthread dotProduct\u critical\u ompi.c-I.编译我的c程序,然后使用gdb用命令gdb dotProduct调试它 但是gdb在名为dotProduct\u critical.c的终端中显示的源文件不是我编译的源文件(我的源文件是dotProduct\u critical\u ompi.c)。为什么?谢谢你的帮助 更新 在我删除输出文件并多次重新编译后,问题就解决了。但是今天,在我修改了源文件之后,错误再次出现。这
gcc-std=gnu99-g-pthread dotProduct\u critical\u ompi.c-I.
编译我的c程序,然后使用gdb用命令gdb dotProduct
调试它
但是gdb在名为dotProduct\u critical.c
的终端中显示的源文件不是我编译的源文件(我的源文件是dotProduct\u critical\u ompi.c
)。为什么?谢谢你的帮助
更新
在我删除输出文件并多次重新编译后,问题就解决了。但是今天,在我修改了源文件之后,错误再次出现。这种方法已经不起作用了。我能做什么?(我的源文件仍然是dotProduct\u critical\u ompi.c
)
命令gdb-batch dotproduct-ex“info sources”
的输出为:
确保您正在调试编译的可执行文件,而不是另一个。更改目的地名称(不要使用吸人的
a.out
)。例如,使用-o dotproduct
然后使用gdb dotproduct
进行调试,然后删除a.out
文件,重新编译并告诉我们。编译器不可能用dotproduct\u critical.c
替换dotproduct\u critical.c
。您的文件是符号链接吗?gdb-batch a.out-ex“info sources”的输出是什么?您给gdb的参数是什么?您能从一开始就显示gdb产生的所有输出(您可以省略版权声明)吗?