gdb相关初始化配置,包括在vscode中配置gdb初始化参数

我在vscode的launch.json关于gdb参数的配置中有写到,只给gdb初始化时配置-enable-pretty-printing可能没有作用。原因在于pretty-printing所需要使用的python脚本没有被默认的import进来,并被调用。

我们来看看需要如何使pretty-printing起作用。

首先,通过linux命令行查找/usr/share/gcc-x.x.x/python这么个目录。

如果没有此目录的话,需要去网上下载这个东西,可以参考下面的文章(我没看懂下载到哪,因为我没有实际操作过)

GDB调试,如何查看STL容器值?_小小蚂蚁fcy的博客-CSDN博客_gdb查看stl

找到此目录后,copy下这个目录路径备用。

在~/.gdbinit中(如果没有则自己建一个)加入下面内容,其中的路径就是刚刚copy的路径。

python
import sys
sys.path.insert(0, '/usr/share/gcc-x.x.x/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

这样gdb启动时就会默认加载这几行语句了。

我们也可以在~/.gdbinit中加入其他的一些gdb的初始化参数,以符合我们的调试习惯。

这些参数也都可以写到vscode的launch.json中,比如下面这样

"setupCommands": [
    {
        "description": "Test",
        "text": "python import sys;sys.path.insert(0, '/usr/share/gcc-x.x.x/python');from libstdcxx.v6.printers import register_libstdcxx_printers;register_libstdcxx_printers(None)",
        "ignoreFailures": false
    },
    {
        "description": "Enable pretty-printing for gdb",
        "text": "-enable-pretty-printing",
        "ignoreFailures": true
    }
],

gdb的其他参数可以参考下面的文章

用GDB调试程序(六) - CarryBricks - 博客园

所有的参数可以通过进入gdb后输入help set print 来查看,当然还有非print相关的许多其他设置,可以自己摸索。

写到launch.json中参考如下格式(没试过,有问题自己摸索)

"setupCommands": [
    {
        "description": "Set Disassembly Flavor to Intel",
        "text": "-gdb-set disassembly-flavor intel",
        "ignoreFailures": true
    }
],

最后附上抄的别人的配置,用上去还行

set print pretty on
set print object on
set print static-members on
set print demangle on
set print sevenbit-strings off

python
import sys
sys.path.insert(0, '/usr/share/gcc-x.x.x/python')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值