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

相关推荐
AlfredZhao10 小时前
vi 删除指定范围的行,不用再反复按 dd
linux·vi
用户97183563346616 小时前
银河麒麟 KY10 申威(SW64) 安装 nginx-1.16.1-2.p01.ky10.sw_64.rpm 详细步骤
linux
猪脚踏浪17 小时前
linux 拷贝文件或目录到指定的位置
linux
大树881 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠1 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质1 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush41 天前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5201 天前
Linux 11 动态监控指令top
linux
Inhand陈工1 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智1 天前
ARP代理--工作原理
运维·网络·arp·arp代理