如何让Visual Studio Code运行C程序时输出详细崩溃错误信息
让VS Code显示C程序崩溃的详细错误信息
一、明确调试器依赖逻辑
VS Code的C/C++调试功能完全依赖底层调试器,不同调试器的错误信息输出能力不同:
- 若使用MinGW套件的GDB调试器,需手动配置参数让它捕获并输出崩溃细节;
- 若复用VS2017的MSVC工具链调试器,可直接获得和VS2017一致的错误提示。
二、MinGW(GDB)调试器配置步骤
- 打开VS Code调试面板,点击齿轮图标打开
launch.json配置文件; - 在
"type": "cppdbg"的调试条目里,添加或修改以下参数:
这些参数会让GDB在程序崩溃时自动暂停,输出调用栈、内存访问违规的具体位置等细节;"miDebuggerArgs": "-ex \"set breakpoint pending on\" -ex \"set print frame-arguments all\" -ex \"set print pretty on\"", "stopAtEntry": false - 保存配置后重新调试,崩溃时调试控制台会显示段错误类型、违规内存地址、函数调用链等信息。
三、复用MSVC工具链的配置步骤
如果系统已安装VS2017,可直接让VS Code调用其调试器:
- 打开
Developer Command Prompt for VS 2017,在该命令行中启动VS Code,确保环境变量加载MSVC工具链; - 在
launch.json中添加MSVC调试配置:{ "version": "0.2.0", "configurations": [ { "name": "MSVC Debug", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/你的程序.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "console": "integratedTerminal" } ] } - 使用该配置调试程序,崩溃时会直接输出和VS2017一致的访问违规提示,包含错误类型、内存地址、调用栈等完整信息。
四、额外注意事项
- 确保VS Code的「Microsoft C/C++」扩展为最新版本,旧版本可能存在调试信息显示不全的问题;
- 若崩溃时调试器未自动暂停,检查
launch.json中"stopAtEntry"是否设为false,并确认调试器已正确关联程序进程。
内容的提问来源于stack exchange,提问作者Michael Morozov
相关产品推荐
相关产品推荐

