“应用程序错误"是否可以解决?对话框被禁用?

我使用 Hudson 作为持续集成服务器来测试 C/C++ 代码.不幸的是,我在某处有一个导致内存损坏的错误,因此在某些 Windows 机器上,我有时会收到一个应用程序错误"对话框,说明一条指令引用了无法读取的内存.弹出这个对话框,基本挂了试运行,因为需要人工干预.

I am using Hudson as a continuous integration server to test C/C++ code. Unfortunatly, I have a bug somewhere that causes memory corruption, so on some Windows machines I will sometimes get a "Application Error" dialog box explaining that an instruction referenced memory that could not be read. This dialog box pops up and basically hangs the test run, as it requires manual intervention.

有没有办法阻止这个对话框出现,这样测试运行就会失败并在 Hudson 中报告这样的结果?

Is there a way to prevent this dialog box from appearing, so that the test run simply fails and is reported as such in Hudson?

是否可以自动生成小型转储而不是显示对话框?

Is it possible to automatically generate a minidump instead of showing the dialog?

推荐答案

  1. 按照 Gently 先生的建议,使用禁用错误报告".另请参阅这篇 PC World 文章.
  2. 如果您的构建机器上有 MS Visual Studio,它会捕获应用程序错误并弹出一个对话框.要禁用这些对话框(以及 Visual Studio 的即时调试功能),请运行命令 drwtsn32.exe -i 将 Dr. Watson 设置为默认系统调试器.Watson 博士将生成核心转储并静默退出.(请参阅此 Microsoft 知识库文章:http://support.microsoft.com/kb/q121434/.)
  1. Use "Disable error reporting", as Mr. Gently suggests. See also this PC World article.
  2. If you happen to have MS Visual Studio on your build machine, it will catch Application Errors and pop up a dialog box. To disable these dialogs (and also the Just-In-Time Debugging feature of Visual Studio), run the command drwtsn32.exe -i to set Dr. Watson as the default system debugger. Dr. Watson will generate a core dump and silently exit. (See this Microsoft Knowledge Base article: http://support.microsoft.com/kb/q121434/.)

相关文章