一些无效的代码:

struct p { int a; int b[3]; }
p* p_object = nullptr;
int v[3]; 
v[0] = p->b[0];

最后一行触发Win32访问冲突 . 通常,Visual Studio会中断执行,显示违规发生的位置 .

输出窗口提供:

在0x0000000013BDE5D3(--- . dll)中抛出异常 - .exe:0xC0000005:访问冲突读取位置0x0000000000000028 . 在0x00007FF8BBE59D98中抛出异常 - .exe:Microsoft C异常:内存位置0x000000000037D3F8处的CSEHException .

现在,如果我按F5继续, the program locks up, and the debugger locks up . 调试/停止调试挂起Visual Studio . 最终是一个对话框

“操作时间超过预期”

出现 .

64位调试操作的时间比预期的要长 . 这可能是由于与第三方网络软件不兼容造成的 . “[终止] .

我没有第三方网络软件 .

Terminate会停止调试器,但会离开程序,该程序只能被任务管理器杀死,后者显示无响应 .

这种行为有望吗?我的调试器有问题吗?