我有一个源文件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自由软件股份有限公司基金会
但是,当我试图在第5行设置断点时,我得到了以下消息
(gdb) break 5
Breakpoint 1 at 0x10814: file /home/users/xxx/C, line 5.
(gdb)
问题是/home/users/xxx/C是我当前的工作目录,而不是源文件!
然后,我尝试使用文件:行号选项
(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
它仍然不起作用,出了什么问题?
经过一整天的努力,我终于发现我们应该使用dbx来调试Sun cc编译器编译的程序。这是链接说的。
http://www.cs.cmu.edu/~ gilpin/tutorial/