在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】

相关推荐
曾凡宇先生12 分钟前
openEuler安装jdk,nginx,redis
linux·开发语言·数据库·openeuler
_OP_CHEN12 分钟前
Linux系统编程:(三)基础指令详解(2)
linux·man·more·cat·linux指令·cp·whereis
安卓开发者19 分钟前
Docker常用镜像使用指南:从入门到实战
运维·docker·容器
Lenyiin1 小时前
《 Linux 点滴漫谈: 三 》掌控终端:让 Shell 成为你的系统魔杖
linux·运维·服务器·lenyiin
杭州泽沃电子科技有限公司1 小时前
钢铁厂运输设备在线监测:构建智能工厂的安全与效率基石
运维·人工智能·智能监测
Lynnxiaowen1 小时前
今天我们学习python编程常用模块与面向对象
运维·python·学习·云计算
一匹电信狗1 小时前
【MySQL】数据库表的操作
linux·运维·服务器·数据库·mysql·ubuntu·小程序
撬动未来的支点1 小时前
【Linux】Linux 零拷贝技术全景解读:从内核到硬件的性能优化之道
linux·服务器·性能优化
ajassi20001 小时前
开源 Linux 服务器与中间件(六)服务器--Lighttpd
linux·服务器·开源
立昂2 小时前
Linux route
linux·运维