gdb调试提示:Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.192.el6

qhh0205
博客专家认证
2016-06-11 06:33:06
gdb调试提示:Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.192.el6

按照这个教程(http://www.liujianlin.cn/m/?post=357)做了,这个教程也是网上唯一的教程,还是不行,
到了第三步提示如下:


还请大家踊跃发言,谢谢!
...全文
1582 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qhh0205 2016-06-15
  • 打赏
  • 举报
回复
楼上几位都说的对,就是版本的问题,不过我散分的原则是:谁回答的次数多,谁的分就高 !!!!!!!!!!!!!!!!!!!!结贴!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!碎觉!!!!!!!!!!!!!!!!!!!
qhh0205 2016-06-15
  • 打赏
  • 举报
回复
================谢谢各位,我的问题已经完美解决===========
主要原因是gcc版本太高,gdb版本太低,升级以下gdb版本就好了。
解决方法来自著名的英文论坛statckoverflow,来自以下两个帖子:
http://stackoverflow.com/questions/20474668/gdb-compile-with-g-option-but-single-stepping-until-exit-from-function-main?rq=1
http://stackoverflow.com/questions/2170246/why-am-i-getting-the-message-single-stepping-until-exit-which-has-no-line
如果懒得翻英文帖子,可以直接看以下两个截图即可:



这几段英文相信都能看懂,就不翻译了!
总的来说就是gdb版本太低了,得升级一下gdb版本,之前是gdb7.2,现在升级到了gdb7.8.2,完美解决。
================接下来说说如何源码编译安装gdb===============
1.下载源码包:
http://ftp.nluug.nl/gnu/gdb/gdb-7.8.2.tar.gz
2.解压源码包:
tar -zxvf gdb-7.8.2.tar.gz
3../configure
4. make
此时会提示缺少一个库:configure: error: no termcap library found
5.下载termcap库源码:
wget ftp://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
6.编译安装termcap库:
./configure
make
make install
7.重新跳到gdb源码目录编译安装:
./config
make
make install
注意:默认安装在/usr/local/bin目录下,后面自己改环境变量就可以直接用了。
好了,现在可以正常使用gdb调试程序了:

nswcfd 2016-06-14
  • 打赏
  • 举报
回复
n命令(单条C语句)由于没有debuginfo不能用(-g编译的么?),那ni命令(单条汇编指令)能不能用?
qhh0205 2016-06-14
  • 打赏
  • 举报
回复


引用 10 楼 nswcfd 的回复:
这说明可以进行正常的单步调试(汇编指令级别)。

不过不能关联c语句好像有点问题,
最前面的几个ni,使用list可以列出main函数里的语句么?

=====>可以list列出main里面的语句。下面红框框圈起来的应该是重点,应该是库不匹配,
但是不会弄:

nswcfd 2016-06-14
  • 打赏
  • 举报
回复
这说明可以进行正常的单步调试(汇编指令级别)。 不过不能关联c语句好像有点问题, 最前面的几个ni,使用list可以列出main函数里的语句么?
qhh0205 2016-06-14
  • 打赏
  • 举报
回复
引用 8 楼 nswcfd 的回复:
n命令(单条C语句)由于没有debuginfo不能用(-g编译的么?),那ni命令(单条汇编指令)能不能用?


=====>编译的时候-g选项加了。单指令ni调试如下:
qhh0205 2016-06-13
  • 打赏
  • 举报
回复
顶一下! 顶一下!
图灵转世 2016-06-12
  • 打赏
  • 举报
回复
应该是版本不配。
qhh0205 2016-06-12
  • 打赏
  • 举报
回复
引用 1 楼 末日狂奔的回复:
你的编译器和gdb不是一个c库,用编译器的bin下的gdb
我gdb单独安装的,在/usr/bin/这个目录,不知道你说的gdb是哪一个,在哪个目录?
qhh0205 2016-06-12
  • 打赏
  • 举报
回复
引用 1 楼 末日狂奔的回复:
你的编译器和gdb不是一个c库,用编译器的bin下的gdb
你说的有道理,我原先的gcc版本很低,然后自己编译了一个高版本的,可能就是你说的这个原因吧,新安装的C库和现在的gdb不匹配。
qhh0205 2016-06-12
  • 打赏
  • 举报
回复
引用 4 楼 nswcfd 的回复:
如果不关心libc的内部实现的话,可以忽略这个信息,也就是说,不用安装libc的debuginfo。
可是现在gdb没法调试,用不了,该怎么办呢?
fly 100% 2016-06-12
  • 打赏
  • 举报
回复
你的编译器和gdb不是一个c库,用编译器的bin下的gdb
nswcfd 2016-06-12
  • 打赏
  • 举报
回复
如果不关心libc的内部实现的话,可以忽略这个信息,也就是说,不用安装libc的debuginfo。

23,114

社区成员

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

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