LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1011|回复: 6

请教,gdb调试C程序时不能list原代码。。。

[复制链接]
发表于 2003-9-28 09:46:10 | 显示全部楼层 |阅读模式
现在在LINUX下学习C,今天看了一些gdb调试程序的使用方法,拿来练习一下,不能list源文件。

出错如下:

[moxnet@localhost moxnet]$ gdb myc
GNU gdb Red Hat Linux (5.3post-0.20021129.18rh)
Copyright 2003 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu"...
(gdb) list
1       ../sysdeps/i386/elf/start.S: 没有那个文件或目录.
        in ../sysdeps/i386/elf/start.S
(gdb)


说明:
用户目录下有已经gcc编译过的c程序(@gcc -o myc myc.c)
 楼主| 发表于 2003-9-28 09:49:28 | 显示全部楼层
哦,明白了。。。

编译时没有加-g参数。。。

:-)


list num(num为数字)
我试验了一下,num为几,则程序从第几行开始列出,但是我不加num时,程序默认从第11行列出,如何让她默认从第1行开始列出呢?
发表于 2003-9-28 16:09:40 | 显示全部楼层
除了加-g, 还应该把-O去掉,否则,调试的时候会发现执行的语句序列完全不是预期的那样,呵呵
 楼主| 发表于 2003-9-28 18:09:35 | 显示全部楼层
-o是个优化选项吧?好象还有一个是-o2

一个比一个产生的程序小,快,但是以牺牲编译时间为前提的(刚学来的,现学现卖,^_^)
发表于 2003-9-28 18:13:41 | 显示全部楼层
应该是-O,大写的

list干脆第一次用“l 0”
 楼主| 发表于 2003-9-28 18:29:57 | 显示全部楼层
哦,-o指的是outfile,-O指的是优化选项,对不?

刚才man gcc了一下,发现除了-O2外,共有-O,-O0,-O1,-O2,-O3, -Os
这么多带大写O的,是不是都是优化选项,指是优化的水平不一样呢?
发表于 2003-9-30 09:09:39 | 显示全部楼层
确实如此,优化级别越高,编译时间越长,但程序运行速度越快。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表