Mac上gdb启用pretty printers(STL格式美化)

11 篇文章 0 订阅
6 篇文章 0 订阅

0.背景

gdb原生态对于STL的输出不太直观,为了可以直观的查看STL的值,我们进行相关的配置。

1.方式概览

要实现这种需要有多种方式,https://sourceware.org/gdb/wiki/STLSupport 这里介绍了3种主要的方式。我们这里介绍第一种方式,这种方式不仅最简单也是最好用的。

提一下第二种方式,在大型项目中通常我们的容器也会嵌套别的容器,这种情况下第二种方式就比较弱了,不能很好的展示。

2.使用方式

使用下列命令下载python脚本(需要安装svn),这个脚本在gdb高版本应该是自带的,不过这里我们统一下载下。最好放到一个容易辨识的文件夹里,这里取名字stl_pretty_printer。

# 需要安装svn,默认mac是自带的,如果没有使用下列命令安装
brew install svn
# 建立stl_pretty_printer目录
mkdir stl_pretty_printer
# 进入
cd stl_pretty_printer
# 下载脚本
svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python

.gbdinit是gdb的配置文件,在启动的时候加载,我们需要将以下内容复制到其中。

python
import sys
sys.path.insert(0, '/xxx/xxx/stl_pretty_printer/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

重新启动gdb即可。

如果执行了以上操作发现不起作用,或者在启动gdb时候提示“不支持python的脚本”,需要检查在安装gdb时候是否启用了python支持。

如果没有启用,需要重新安装,参见这篇博客 https://blog.csdn.net/wj1066/article/details/83653153 ,只是在configure的时候使用如下参数。

./configure --with-python

如果在make的时候提示Python missing or unusable error while cross compiling GDB,请切换到系统默认python或者安装python-dev。

3.补充

为了格式更加美观可以加上:

set print pretty on

如果出现During startup program terminated with signal ?, Unknown signal这个错误,这个是因为mac系统的问题。加上:

set startup-with-shell off

Reference

1.https://sourceware.org/gdb/wiki/STLSupport

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值