Chinaunix

标题: gdb [打印本页]

作者: wangxiaoguang    时间: 2008-08-01 15:33
标题: gdb
file a.out
list


在使用gdb调试程序时想要列出源代码但报错:

1       ../sysdeps/i386/elf/start.S:没有那个目录或文件
        in ../sysdeps/i386/elf/start.S

不知是什么原因
作者: 雨丝风片    时间: 2008-08-01 22:52
原帖由 wangxiaoguang 于 2008-8-1 15:33 发表
file a.out
list


在使用gdb调试程序时想要列出源代码但报错:

1       ../sysdeps/i386/elf/start.S:没有那个目录或文件
        in ../sysdeps/i386/elf/start.S

不知是什么原因


编译环境和调试环境不一样?
作者: xi2008wang    时间: 2008-08-01 23:18
gcc -g foo.c
gdb ./a.out
list
作者: baidu85    时间: 2008-08-01 23:50
如果你想gdb调试,那么在编译的时候像楼上说的指定命令参数,否则gcc在编译的时候会擦出符号表,这样你就没有调试信息了
作者: MMMIX    时间: 2008-08-01 23:55
原帖由 baidu85 于 2008-8-1 23:50 发表
如果你想gdb调试,那么在编译的时候像楼上说的指定命令参数,否则gcc在编译的时候会擦出符号表,这样你就没有调试信息了

gcc 不会察除符号表,只是不加 -g 的话不会生成调试信息而已。btw,调试信息和符号表可不是一回事。
作者: blizzard213    时间: 2008-08-02 00:08
原帖由 baidu85 于 2008-8-1 23:50 发表
如果你想gdb调试,那么在编译的时候像楼上说的指定命令参数,否则gcc在编译的时候会擦出符号表,这样你就没有调试信息了


没符号表怎么链接啊
作者: crowsy001    时间: 2008-08-02 00:35
lz  是否是compile时没有加-g选项?
作者: wangxiaoguang    时间: 2008-08-02 08:17
哦,忘了加-g了
谢了各位
作者: Godbach    时间: 2008-08-02 08:35
原帖由 wangxiaoguang 于 2008-8-2 08:17 发表
哦,忘了加-g了
谢了各位



呵呵,一看帖子估计就是LZ忘了加-g了。建议LZ详细了解一下gdb调试,对你调程序很有帮助




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2