创建并发送崩溃报告

时间:2011-02-16 23:58:27

标签: c++ windows error-handling crash

有没有人有任何关于在程序上创建崩溃报告的建议或教程?我想开始向人们发送一个我正在开发的游戏,但如果游戏因错误处理而崩溃,我希望将这些报告看到我已经注册的电子邮件地址(以及从程序中收集的数据)。有谁知道如何做到这一点?

5 个答案:

答案 0 :(得分:4)

如果您使用的是Visual Studio 2010,则可以使用内置错误报告。然后,您可以向Microsoft注册,请参阅http://msdn.microsoft.com/en-us/isv/bb190483

答案 1 :(得分:3)

执行崩溃报告最直接的方法是在代码中使用try-catch语句。当发生异常时,您将创建一个临时日志文件,其中包括异常类型,源代码类,发生崩溃的函数和行以及全局变量和局部变量/容器的数据,其中一些应包括用户输入。 / p>

您不会通过电子邮件发送错误日志,但您的程序会打开一个端口并将数据发送到服务器,该服务器会持续侦听预定义的端口以获取错误报告。

更高级的错误报告可以包括内存转储和寄存器的值。要读取内存值,快速而肮脏的方法是使用一个指针,该指针将迭代读取堆栈区域的值。对于寄存器值,您可以使用asm关键字。

答案 2 :(得分:2)

您可以使用MiniDumpWriteDump中的Debug Help Library函数创建包含每个线程堆栈转储的转储文件。我相信你可以在Visual Studio中打开文件并将其视为调试器(或接近它)。

答案 3 :(得分:2)

Maciej Sinilo's blog上有一些很好的示例代码(他也是游戏程序员)。该代码包括如何从崩溃中获取信息(例如,它是无效的读取或写入)以及callstack或minidump。这足以让我开始在我们的测试系统中添加崩溃处理程序。

希望有所帮助。

答案 4 :(得分:1)

如果您想通过互联网进行某种现成的错误报告,请查看EQATEC analytics

,它有一个C ++接口。

相关问题