在Linux上可以使用vscode调试coredump。方法是在vscode的调试配置里面新增一段配置。主要内容包含:
1.要调试启动的二进制文件路径:program
2.coredump文件路径:coreDumpPath
3.调试器路径:miDebuggerPath
4.各种环境变量。例如,要加载自己编译的mesa二进制和符号:"name": "LD_LIBRARY_PATH",
样例如下:
{
// 配置名称,可自定义
"name": "Debug dump",
// 调试器类型,Linux 下调试 C/C++ 用 gdb
"type": "cppdbg",
// 调试模式,这里选择 "launch" 表示启动程序并调试
"request": "launch",
// 要调试的可执行文件路径(替换为你实际要测试的 Mesa 依赖程序,比如 glxinfo)
"program": "/usr/bin/kwin_wayland",
// 程序启动参数(根据需要调整,比如指定 Mesa 驱动)
"args": [""],
// 调试启动时是否停在程序入口(main 函数),新手建议设为 true
"stopAtEntry": true,
// 工作目录
"cwd": "${workspaceFolder}",
"coreDumpPath": "xxxxx", // core dump 文件路径(必填)
// 环境变量:
"environment": [
{
"name": "LD_LIBRARY_PATH",
"value": "/usr/mesa23.1_debug/lib/aarch64-linux-gnu:${env:LD_LIBRARY_PATH}"
},
// {
// "name": "MESA_LOADER_DRIVER_OVERRIDE",
// "value": "virtio_gpu"
// },
// {
// "name": "LIBGL_ALWAYS_SOFTWARE",
// "value": "0"
// },
// {
// "name": "GALLIUM_DRIVER",
// "value": "llvmpipe"
// },
{
"name": "MESA_DEBUG",
"value": "1"
},
{
"name": "LIBGL_DRIVERS_PATH",
"value": "/usr/mesa23.1_debug/lib/aarch64-linux-gnu/dri"
},
// 可选:开启更多 Mesa 调试输出
{
"name": "MESA_LOG_LEVEL",
"value": "debug"
},
// 可选:开启更多 Mesa 调试输出
{
"name": "VIRGL_DEBUG",
"value": "all"
}
],
"MIMode": "gdb",
// 禁用外部控制台,输出直接在 VSCode 终端显示
"externalConsole": false,
// 调试器路径(Linux 下默认 gdb,若有自定义路径可修改)
"miDebuggerPath": "/usr/bin/gdb",
// 预启动任务(可选,比如编译 Mesa 调试版本)
"preLaunchTask": "",
},
1296

被折叠的 条评论
为什么被折叠?



