【问题标题】:How can I get more info from a crash error in windows 7?如何从 Windows 7 中的崩溃错误中获取更多信息?
【发布时间】:2012-08-01 19:58:42
【问题描述】:

问题

我的应用程序似乎有问题,因为它意外崩溃。我正在尝试解决问题,但我遇到了以下问题:

在 Windows 7 上,当应用程序崩溃时,会出现以下窗口,而不是获取有关崩溃的一些有用信息:

问题

是否可以让 Windows (7) 显示一些实际有用的信息?像堆栈跟踪?内存转储?奇怪的错误代码?任何事物?我非常怀疑微软可以在这里帮助我......事实上,checking for a solution to the problem 从未找到任何应​​用程序的解决方案,我不知道为什么这个窗口甚至存在。

我记得在 Windows XP 上,有那个 错误报告 窗口,并且在某个地方有一个链接到另一个窗口,它实际上显示了一些信息。

我尝试了什么

我尝试使用信号处理自己处理应用程序崩溃。然而,使用 MinGW 的信号处理似乎很糟糕:写入空指针应该发送一个 SIGSEGV 信号,但程序崩溃了。在网上查找,我发现this 线程让我相信信号处理可能被破坏了。

在多线程中使用 GDB 给我带来了很多麻烦,因为要做一些时间敏感的事情。

其他说明

我正在 Windows 7 上工作(显然),使用 MinGW 编译器套件 Eclipse IDE。

【问题讨论】:

  • 您使用的是什么 IDE? Visual Studio,代码块,其他? IDE 允许您在调试模式下运行您的应用程序,并查看失败的代码行。
  • 我正在使用 Eclipse。我知道它在哪一行失败,我只是不知道为什么,所以一条错误消息或其他东西会很有用。调试不起作用,因为在那一行,我调用了一个 winapi 函数,没有可能出错的参数。这里的问题是缺少 Windows 错误处理程序提供的有用信息。
  • 听起来问题是你没有调试。从开发环境运行或附加到 engine.exe 以进行带有符号加载的调试构建,您应该有一个调用堆栈来确定您做错了什么。如果仍然卡住,请在调试后在此处显示有问题的代码、错误、异常等。
  • @Tibi 这稍微缩小了问题的范围。你能显示失败的代码行吗?这似乎是缓冲区溢出问题或与内存管理有关的问题。否则,API 调用通常会返回错误代码,而不是崩溃。
  • 您在 Windows 上使用 minidump 调试此类问题。您可以在显示此对话框时从 Taskmgr.exe 的“进程”选项卡中创建一个。

标签: c++ windows-7 error-handling signals mingw


【解决方案1】:

当这个窗口出现时,不要点击取消。大约 1 到 2 分钟后,它会变成另一个窗口,让您选择指定的编译器(在我的计算机上是 Visual Studio 2010)并进行调试。

【讨论】:

  • 在 Eclipse 中制作项目时,如何使用 Visual Studio 进行调试?它根本无法在我的电脑上运行。是否可以使用 GDB 进行调试?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 2011-05-13
  • 1970-01-01
  • 2014-05-08
  • 1970-01-01
相关资源
最近更新 更多