有时我在使用VS2012以Debug模式启动/调试应用程序时会收到一个对话框:
<blahblah.exe>已触发断点。
该对话框没有提供其他信息,因此我按下“中断”按钮以查看发生了什么。但是,接下来我遇到了"wntdll.pdb未加载"的错误,并且没有其他关于问题的信息。调用堆栈指向ntdll.dll,而且在此时似乎我的应用程序尚未开始执行。
在此处选择继续将允许应用程序/调试器像往常一样继续运行。
这种情况非常频繁(大约10次中有7次)。我正在运行Windows 8(64位)和带有更新1的Visual Studio 2012。
以前我使用Windows 7(64位)和VS2010,从未遇到过这个问题。该项目已从创建它的版本(2010)进行了升级,因此可能是问题的一部分。
有人遇到过这个问题吗?我不知道从哪里开始寻找原因。虽然我正在运行64位的Windows,但我应该提到我正在构建32位的应用程序。
更新:启用Microsoft符号服务器后,调用堆栈如下所示:
> ntdll.dll!_LdrpDoDebuggerBreak@0() Unknown
ntdll.dll!_LdrpInitializeProcess@8() Unknown
ntdll.dll!__LdrpInitialize@8() Unknown
ntdll.dll!_LdrpInitialize@8() Unknown
ntdll.dll!_LdrInitializeThunk@8() Unknown
我还应该补充一下,以防万一,我在代码中绝对没有手动设置任何断点。