VSCode调试时双击Call Stack无响应,无法弹出详情窗口
问题
调试代码时,双击VSCode的Call Stack(调用栈)区域中的任意一行,没有任何反应,预期应该弹出窗口显示相关详情。使用的launch.json配置如下:
{ "configurations": [ { "name": "Launch program", "type": "cppdbg", "request": "launch", "program": "${workspaceRoot}/build-tests/${input:p1}", "args": [], "stopAtEntry": false, "cwd": "${workspaceRoot}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "/usr/bin/gdb", "launchCompleteCommand": "exec-run", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Set Disassembly Flavor to Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ] } ], "inputs": [ { "id": "p1", "description": "What Unit Tests do you want to run?", "options": [ "test/unit_tests/my-test" ], "default": "test/unit_tests/my-test", "type": "pickString" } ] }
解决方法
- 确保调试会话处于暂停状态:只有当程序停在断点、异常处或手动暂停时,调用栈的行才具备交互性,程序运行中双击调用栈行不会有反应。
- 检查调试符号是否生成:编译代码时必须添加
-g参数生成调试符号,否则调用栈无法关联到有效源码信息,双击自然无响应。 - 更新C/C插件:打开VSCode扩展面板,找到「C/C」插件,更新到最新版本,旧版本可能存在调用栈交互的bug。
- 验证gdb版本兼容性:确保使用的gdb版本(
/usr/bin/gdb)与VSCode的cppdbg调试适配器兼容,建议使用gdb 8.0及以上版本。 - 调整launch.json配置:如果源码路径与编译时的路径不一致,添加
sourceFileMap字段映射路径,示例:"sourceFileMap": { "/path/to/compiled/source": "${workspaceRoot}/src" } - 检查VSCode调试设置:打开设置(Ctrl+,),搜索
debug.callStackWidget.showVariables,确保该选项处于开启状态,此选项控制点击调用栈行时是否显示变量详情弹窗。
内容的提问来源于stack exchange,提问作者user13295228
相关产品推荐
相关产品推荐

