在Linux下使用vscode使用交叉编译工具链的gdb对core文件进行堆栈、变量查看
当我们交叉编译的程序在目标机器崩溃挂掉的时候,一般可以通过设置ulimit -c unlimited
让其生成一个core文件。
我们拿到此文件后,可以在交叉编译的主机上,利用其工具链的gdb+编译时产生的符号信息来查看gdb的内容,方便我们定位代码出错的地方。
但是仅仅用gdb的话,只能靠命令行窗口查看,不是很方便,但是可以配合vscode。
在vscode的debug栏,点击Run and debug里面的Add configuration
,配合一段代码,便可以利用gui来查看信息。
注意下面这段代码是需要自己手动插入的,vscode自带的模板中是没有的
{"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】