代码之家  ›  专栏  ›  技术社区  ›  Alexar

C++:如何调试“一般保护异常”?

  •  1
  • Alexar  · 技术社区  · 14 年前

    我遇到了一个未处理的例外“一般保护例外”。程序运行时没有输出。

    谢谢

    2 回复  |  直到 14 年前
        1
  •  2
  •   Mark    14 年前

    是的,如果您不能使用VisualC++(专业或Express)中的调试器来解决问题,如果它真的崩溃了整个系统,请看:

    http://support.microsoft.com/kb/315263

    http://msdn.microsoft.com/en-us/library/aa363362%28VS.85%29.aspx

    http://www.microsoft.com/whdc/devtools/debugging/default.mspx

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

        2
  •  0
  •   Mike    14 年前

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