在Linux下使用vscode使用交叉编译工具链的gdb对core文件进行堆栈、变量查看

当我们交叉编译的程序在目标机器崩溃挂掉的时候,一般可以通过设置ulimit -c unlimited让其生成一个core文件。

我们拿到此文件后,可以在交叉编译的主机上,利用其工具链的gdb+编译时产生的符号信息来查看gdb的内容,方便我们定位代码出错的地方。

但是仅仅用gdb的话,只能靠命令行窗口查看,不是很方便,但是可以配合vscode。

在vscode的debug栏,点击Run and debug里面的Add configuration,配合一段代码,便可以利用gui来查看信息。

注意下面这段代码是需要自己手动插入的,vscode自带的模板中是没有的

yaml 复制代码
{
            "name": "GDB Debug Core Dump",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/untitled1",        // 你的可执行文件
            "coreDumpPath": "${workspaceFolder}/core.87112",  // 核心转储文件路径
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "miDebuggerPath": "loongarch64-linux-gnu-gdb", // 交叉编译工具的gdb
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "stopAtEntry": false
        }

加入后,launch.json的样子如下:

然后,执行,就可以看到调用堆栈、局部变量、源码等信息了


参考
【vscode在docker内gdb调试core dump文件】
【使用 VSCode 远程 图形化 GDB 调试 嵌入式linux】

相关推荐
NamoAmitabha1287 小时前
libpng12-0 1.2.54-1ubuntu1.1 (amd64 binary) in ubuntu xenial
linux·ubuntu20.4
Madison-No77 小时前
搭建项目测试环境
linux·运维·服务器·python
吴声子夜歌8 小时前
Shell编程实例——编写安全的shell脚本(二)
linux·运维·shell
悠悠121389 小时前
微服务通信别只看性能:REST 与 gRPC 的 6 个选型判断和一次 502 故障复盘
运维·服务器
程序员允诺9 小时前
内网/无网环境必备:VS Code Remote-SSH 离线包下载与手动部署教程
vscode
xiaoye-duck10 小时前
《Linux 网络编程》深入理解 IP 协议(二):网段划分、私有 IP 与 NAT 地址转换
linux·网络·ip
zx_7414848110 小时前
【Linux入门】Shell 函数、正则表达式与文本处理:cut 与 awk
linux·运维·正则表达式
Zenova EdgeOS11 小时前
Linux dmesg 工业边缘实战:内核日志过滤、持久化与故障定位
linux·运维·边缘计算·工业边缘·dmesg·内核日志
金士顿11 小时前
System.Text.Json Source Generator 深度解析:为什么 Native AOT 不喜欢反射
linux·asp.net core·arm64·net·native aot
wdfk_prog12 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros