求助:gdb调试问题

jsjahz 2004-03-19 08:57:54
求助:gdb调试问题
源代码中有一源文件为:program.c
makefile文件中,有一编译项为:gcc -g -o program program.c
然后,用gdb调试:
[root@linux program]# gdb program
GNU gdb Red Hat Linux (5.2.1-4)......
(gdb) b main
Break point 1 at Ox80489d2
(gdb) r
Start program:/usr/program
Break point 1 at Ox080489d2 in main()
(gdb) n
Single stepping until exit from function main,
which has no line number information.....
.....
(gdb) n
Single stepping until exit from _libc_start _main,
whicl has no line number information...
Program exited normally

为什么会这样呢?编译时有 “-g”选项啊,为什么gdb调试没有信息呢?
求助,谢谢!

...全文
231 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
balu 2004-04-05
  • 打赏
  • 举报
回复
用Magic C++,试试它的自动生成Makefile功能。
http://bbs.chinaunix.net/forum/23/20040306/275020.html
benbensan 2004-04-05
  • 打赏
  • 举报
回复
gdb的版本过低也会有问题,我上次就不能用,后来装了一个最新版的gdb就好了,建议你试试最新版
yuanlei1978113 2004-03-23
  • 打赏
  • 举报
回复
你试试 ddd 图形调试工具
anonimousboy 2004-03-22
  • 打赏
  • 举报
回复
建议你用insight调试,图像画界面,很友好~~ddd也不错!可以把你的数据结构以图形化方式显示出来,很形象!
yhbttfile 2004-03-20
  • 打赏
  • 举报
回复
还是去网上找一篇关于GDB的介绍性文章吧。
一般里面都有示例告诉你怎样调试程序,包括你说的断点设置等。
jsjahz 2004-03-20
  • 打赏
  • 举报
回复
谢谢各位的帮助!
可是问题还是存在,不知道该怎么作,焦急等待中!
wxywh 2004-03-20
  • 打赏
  • 举报
回复
GDB的使用

当程序出错并产生core 时
快速定位出错函数的办法
gdb 程序名 core文件名(一般是core,也可能是core.xxxx)

调试程序使用的键
r run 运行.程序还没有运行前使用
c cuntinue 继续运行。运行中断后继续运行
q 退出
kill 终止调试的程序
h help 帮助
<tab> 命令补全功能

step 跟入函数
next 不跟入函数
b breakpoint 设置断点。
用法:
b 函数名 对此函数进行中断
b 文件名:行号 对此文件中指定行中断.如果是当前文件,那么文件名与:号可以
省略
看当前断点数使用info break.禁止断点disable 断点号.删除delete 断点号.

l list 列出代码行。一次列10 行。连接使用list将会滚动显示. 也可以在list 后面
跟上 文件名:行号
watch 观察一个变量的值。每次中断时都会显示这个变量的值
p print 打印一个变量的值。与watch不同的是print只显示一次
这里在顺便说说如何改变一个 value. 当你下指令 p 的时候,例如你用 p b,
这时候你会看到 b 的 value, 也就是上面的 $1 = 15.
你也同样可以用 p 来改变一个 value, 例如下指令 p b = 100 试试看,
这时候你会发现, b 的 value 就变成 100 了:$1 = 100.
gaoxianfeng 2004-03-20
  • 打赏
  • 举报
回复
最好能贴出源码
你编译连接 就直接用 gcc -g program.c 的了
然后gdb a.out
问题范围划的越小越好
gaoxianfeng 2004-03-20
  • 打赏
  • 举报
回复
program.c 不是main.c
ks9960 2004-03-19
  • 打赏
  • 举报
回复
你用“l”看看代码,然后“b”在某一具体的行在看看。
zidane1975 2004-03-19
  • 打赏
  • 举报
回复
我好象也遇到这样的问题,关注
jsjahz 2004-03-19
  • 打赏
  • 举报
回复
加了 -ggdb ,也不行啊,同样的问题!

第二处用 step 也不行啊!断点设在第一行也不行!
wxywh 2004-03-19
  • 打赏
  • 举报
回复
断点设在main处,第二此next时,程序退出,正常啊.
icedust 2004-03-19
  • 打赏
  • 举报
回复
-ggdb
jsjahz 2004-03-19
  • 打赏
  • 举报
回复
谢谢各位的帮助!
可是问题还是存在:

(gdb)b main.c:<行号>
No source file named main.c.
(gdb)b program.c:<行号>
No source file named program.c.

这是为什么呢?
yuanlei1978113 2004-03-19
  • 打赏
  • 举报
回复
你在设置z断点的时候出错了:

b main.c:<行号>

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧