我遇到了“一般保护例外”的未处理例外。虽然程序运行但没有输出。
我想知道我可以做些什么来调试这样的例外?
感谢
答案 0 :(得分:2)
是的,如果您无法在Visual C ++(专业版或快速版)中使用调试器来解决问题,并且确实崩溃了整个系统,请查看:
http://support.microsoft.com/kb/315263
如果它没有使系统崩溃,并且调试器没有让你到达它发生的位置,你可以尝试使用OutputDebugString和WinDbg:
http://msdn.microsoft.com/en-us/library/aa363362%28VS.85%29.aspx
http://www.microsoft.com/whdc/devtools/debugging/default.mspx
通过使用两个输出字符串进行二进制搜索来查看哪一行导致问题,以查看崩溃发生的位置。最终你应该看到你的第一行打印而第二行不打印,然后你知道两个输出字符串之间可能出现了问题。然后你可以在逻辑上(以二进制搜索模式)移动它们,直到你得到它们围绕一行代码,只打印第一行,然后你可以怀疑它们之间的实际代码行。
答案 1 :(得分:0)
尝试使用msft的调试diags。这将运行一项服务,监控您的应用程序,并在您获得gpe时创建userdump。然后,您可以将转储加载到windbg中,并查看发生异常时发生的情况。