配置GDB支持STL调试

原生GDB不能支持STL调试,要进行STL调试必须进行一些配置才行,但网上的一些配置说明已经过时了,因此重新总结一下。



环境

Ubuntu 14.04 32位

GDB 7.7


步骤

1. Check-out最新的调试工具到本地一个文件夹下,比如 ~/yourname/gdb_printers

svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python

2. 将下列内容添加到 ~/.gdbinit 文件夹中, 其中的路径名改成上一步Check-out的工具对应的路径名

python
import sys
sys.path.insert(0, '/home/yourname/gdb_printers/python')
sys.path.append("/home/yourname/gdb_printers/python/libstdcxx/v6")
from libstdcxx.v6.printers import register_libstdcxx_printers
end


使用效果

如果代码是这样的:
vector a = {2, 3, 6, 7};

调试效果是这样的:
(gdb) p a
$1 = std::vector of length 4, capacity 4 = {2, 3, 6, 7}


参考

http://sourceware.org/gdb/wiki/STLSupport

http://stackoverflow.com/questions/26205564/gdb-pretty-printing-importerror-no-module-named-printers

http://blog.csdn.net/fdl19881/article/details/8710636

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值