标题已经说明环境:
centos6.5
eclipse c++ 官网下载最新
gcc4.8.2
gdb7.2
现在出现的问题是:
error multiple errors reported. failed to execute mi command .......
这个问题我本人不管是google还是百度都没有得到合理的答案,虽然搜到了一些解决方案但是不适合我。
我的解决方法是:
因为在ide下调试不能查看局部变量的值。从而我尝试用gdb来调试,而gdb调试的时候,用print来打印本地的值是各种找不到符号:no symbols......
ok,怀疑是gdb有问题。
因为gdb能用,所以也就没有在意在使用gdb的时候提示的类似这一句的话:
debuginfo-install glibc-2.12-1.149.el6_6.5.x86_64
因为这个问题我现在解决了,所以没有办法重现,我也不想重现了~~~~
现在我转而解决这个问题:
尊重作者:我参考的帖子是:http://blog.csdn.net/IT_YUAN/article/details/25054827
按照操作第1,2步骤,是没有问题的,但是在第三部的时候,按装不上。弄了半天,想想,试试能不能像 使用yum info一样查看有没有这个的存在。就输入命令:
debuginfo-install info
我忘记了后面有没有输入完毕,估计就是输入到Info就结束了,然后很奇葩的就是他给了个安装列表,这个列表里就有要安装的东西。~~~~~~~
那我就治好顺从着安装下去了。
ok~~~@!
现在继续gdb调试,发现符号依然找不到,虽然上面的问题解决了。
那么就想想,看看这个gdb的版本是7.2,而网上的最新的已经是7.5了,7.2还是11年出的。。。
那我就只能换个版本试试了,所以就:
yum remove gdb.x86_64,删除了这个版本。
然后去官网下载了最新的gdb7.9
下载链接http://ftp.gnu.org/gnu/gdb/
下载下来安装:
./configure
./make
没想到make没有那么简单~~~!!
需要一些外围的配置库。
ok,那我就去看看人家是怎么装的:尊重作者,参考:http://blog.csdn.net/wengchzh/article/details/7424130
我的问题正好是:error: no termcap library found
太好了,我就按照他的apt-get的库,全装了,然后重新 make。
结果悲剧的是:妈蛋,还是这个问题、no termcap....
那我就只能自己去下载一个了,,这个也说一波三折....~~!!
下载地址为:http://download.chinaunix.net/download.php?id=20509&ResourceID=10232
下载下来发现没多少东西嘛。而且只要make一下就可以,ok!
./make
- -||,make出现错误~~~@%#¥%@#¥!@#....
错误的大意提示是在:
#define bcopy(s, d, n) memcpy((d), (s), (n))
这里出现错误,应该是代码错误吧。然后我就把他注释掉了,因为我发现调用只有一处,而且在调用的地方也没有这些#if...#endif的条件语句,这个宏的意思不就是个memcpy么,我就把调用的地方手动改成memcpy了。
ok!!!!
先来make成功生成了个xxx.a文件。
但是make完毕的时候还是有错误,估计是shell脚本错误吧,因为我后面:
make install
也有错误,我去,很无语。不管了,直接重新make gdb试试看。
@#¥@#¥~~~哭吧,还是不行。
好吧,我看了下往上安装termcap的教程,我去,复杂啊,作为一个才玩几天的linux新手,竟然要去定位make的时候需要的lib的路径,~~~!好吧。
我就直接自己把:
cp xxx.a /usr/bin
cp termcap.h /usr/include
这样试试看咯。抱着这样的心态~~~~!!
注意:xxx.a应该是libtermcap.a
华丽分割线----------
接下来回到gdb的目录,继续:
make
竟然成功了, 那么下来用root权限:
make install
ok,没有问题~~~!!!
开个新的terminal,输入:
gdb
no commond ??????????????????????????????????????
哎,我操~~~!!
我就看了下
/usr/bin
/usr/local/bin
发现gdb在/usr/local/bin下来,试试:
./gdb
可以运行嘛~~~
那么为什么新开的terminal就不能找到gdb呢,干脆就直接吧:
cp ./gdb /usr/bin
cp ./gdbserver /usr/bin
ok,下来新的terminal就能找到这个命令了~~~!!!!!
再去gdb调试程序,ok~!!!!
可以print局部变量了,~~!
而且7.9比7.2更好,在走到断点的时候显示的信息更多~~
--------------华丽分割线
接下来回到eclipse c++
激动人心的调试下看看,ok!!!
可以显示局部变量了好么~~~~
最后附上几个上面用到的东西,避免连接失效:
termcap:http://pan.baidu.com/s/1i349Bkp
gdb7.9:http://pan.baidu.com/s/1sjNqnFJ,,方便你下载~~!!