我有一个源文件 testcc.c,它只打印一个“Hello, World”,我用 cc 编译它,如下所示
cc -g -o testcc testcc.c
当我运行它时它工作正常。现在我想使用以下命令使用 gdb 对其进行调试。
gdb testcc
我可以看到 gdb 的输出。
GDB 是免费软件,欢迎您在特定条件下分发它的副本;键入“显示复制”以查看条件。GDB 绝对没有任何保证;键入“显示保修”以获取详细信息。GDB 4.16 (sparc-sun-solaris2.6),版权所有 1996 Free Software Foundation, Inc...
但是,当我尝试在第 5 行设置断点时,我收到以下消息
(gdb) break 5
Breakpoint 1 at 0x10814: file /home/users/xxx/C, line 5.
(gdb)
问题是 /home/users/xxx/C 是我当前的工作目录,而不是源文件!
然后,我尝试使用 file:line-number 选项
(gdb) break testcc.c:5
No source file named testcc.c.
因此,我包含文件名的完整路径,如下所示
(gdb) break /home/users/xxx/testcc.c:5
No source file named /home/users/xxx/testcc.c.
我一头雾水,文件在那里,为什么gdb找不到呢?我也尝试在启动gdb时指定目录来搜索源文件
gdb -d /home/users/xxx/C testcc
它仍然无法正常工作,有什么问题?