You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Windows命令提示符报告程序访问违例错误?

在Windows命令行中显示程序崩溃信息的方法

恢复崩溃弹窗提示

Windows默认给控制台程序关闭了崩溃弹窗,你可以通过修改注册表找回这个功能:

  • 打开注册表编辑器(运行regedit)
  • 找到路径 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps,如果没有LocalDumps项,右键新建一个项
  • 在LocalDumps下创建几个DWORD值:
    • DumpType:设置为1(生成迷你崩溃转储)
    • DumpFolder:指定一个已存在的文件夹路径(比如C:\CrashDumps)
  • 另外,若要完全恢复旧版Windows的GPF弹窗,还可以修改HKEY_CURRENT_USER\Control Panel\Desktop下的AutoEndTasks为0,HungAppTimeout设为10000(可选)

修改完成后,控制台程序崩溃时会弹出错误提示框,同时在指定目录生成崩溃转储文件。

在命令行直接获取崩溃反馈

用CMD检查错误级别

程序崩溃时,系统会设置%ERRORLEVEL%为特定非0值(访问违例通常是-1073741819,对应十六进制0xC0000005),执行程序后立刻查看:

foo.exe
echo %ERRORLEVEL%

如果返回上述数值,就说明触发了访问违例。

切换到PowerShell

PowerShell对程序崩溃的反馈更直接,运行程序后会直接显示崩溃信息:

.\foo.exe

崩溃时会输出类似 Program 'foo.exe' crashed with exception code 0xC0000005. 的提示。

配合调试工具用gdb查看详细错误

编译时加上-g参数生成调试信息:

g++ -g -o foo.exe foo.cpp

然后用MinGW自带的gdb运行程序,崩溃时会在命令行直接显示错误位置和调用栈:

gdb ./foo.exe
run

程序崩溃后,gdb会输出具体的错误原因、触发地址,还能通过bt命令查看完整调用栈,快速定位问题。

内容的提问来源于stack exchange,提问作者John Rennie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 13:52:08