2010-09-10 42 views
1

我遇到了“一般保护异常”的未处理异常。程序运行但没有输出。C++:如何调试“一般保护例外”?

我想知道我可以做些什么来调试这种异常?

谢谢

+0

是哪个平台? Linux,Windows或其他东西? – 2010-09-10 17:54:07

回答

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

通过使用两个输出字符串进行二进制搜索以查看崩溃发生的位置,从而缩小哪一行导致问题。最终你应该看到你的第一行打印和第二行不打印,然后你知道两个输出字符串之间可能发生了问题。然后,您可以将它们按逻辑方式移动(以二进制搜索模式),直到它们围绕一行代码并且只打印第一行代码,然后您可以怀疑它们之间的实际代码行。

0

尝试使用msft的调试诊断。这将运行一个服务来监视你的应用程序,并在你得到gpe时创建一个userdump。然后,您可以将转储加载到windbg中,并查看发生异常时发生了什么。