如何创建一个单独的崩溃处理程序,如GoogleCrashHandler?创建单独的崩溃处理程序,如GoogleCrashHandler - C#
回答
Google崩溃处理程序似乎是在其他应用程序中发生某些情况时得到通知的应用程序。
“如果您选择向某些Google软件(例如Google Chrome)发送匿名使用情况统计信息和崩溃报告,GoogleCrashHandler.exe可以在您的计算机上持续运行,它有助于在您的Google软件意外发送时向Google发送崩溃详细信息关闭我们使用这些数据来帮助确定如何防止这些错误在未来发生“
我会创建一个Windows服务,在后台运行,通过命名管道,tcp,文件放置或其他任何好方法。
然后该服务会将收集到的信息发送到特定服务器(或服务器列表) 。它可以作为一个缓冲区,所以你不必每次在内部得到通知时都向服务器发送通知。
当服务器准备好泄漏它的bean时,我会让服务调用服务器上的Web服务。
创建之后应该能够检查,如果你的“崩溃处理”正在运行,并在适当的时候通知其有关错误或异常等,每个应用程序
然而,因为这种行为可能会跳闸,一些地方的防火墙程序,用户可能会质疑哪些数据正在发送以及什么时候发生,您需要记录这些数据,并且非常清楚您正在收集哪些数据,为什么要收集数据以及发送数据的位置。
同意。我认为使用文件系统监视器来查看其他程序的崩溃报告的Windows服务将是最简单的实现。 – smencer 2010-03-09 00:00:01
这适用于非托管代码(Google的所有代码都是)。通常情况下,应用程序会打开一个命名管道与崩溃处理程序对话并告诉它开始观看应用程序。崩溃处理程序然后将一个命名的事件添加到它观看的列表中。当应用程序崩溃时,使用SetUnhandledExceptionFilter()安装的应用程序中的异常过滤器将获得控制权。该异常过滤器然后打开命名的事件。崩溃处理程序会立即发出通知,并且需要崩溃的应用程序的小型转储程序并上传它。并终止该应用程序。
像这样的崩溃处理程序是必要的,因为崩溃的应用程序不能被信任,以便在心脏病发作时仍能正常运行。微软也有一个,它是在Windows中构建的。称为WER,Windows错误报告。当碰撞应用询问你是否可以让微软知道崩溃时,这就是你看到的对话框的来源。
对于托管应用程序,这种方法是不必要的。它们几乎不会死于非托管应用程序死亡的硬件异常(如AccessViolation)。只需编写AppDomain.UnhandledException事件的代码即可。
我希望我可以检查2个答案。 – jaysonragasa 2010-03-09 06:44:06
- 1. 该程序创建目标c + +崩溃
- 2. PySide程序崩溃处理程序
- 3. 崩溃处理程序打印回溯
- 4. C#程序崩溃
- 5. C++程序崩溃
- 6. C#程序崩溃
- 7. 处理JNI崩溃
- 8. 简单的C程序崩溃
- 9. Bullet物理程序崩溃
- 10. 崩溃在树视图c中移动treenode处理程序#
- 11. 如何处理硒崩溃
- 12. C++:创建对象时我的程序崩溃了
- 13. C#,在单独的线程中执行事件处理程序
- 14. 从独立程序创建共享库 - 如何处理“int main()”?
- 15. VC++异常处理 - 应用程序崩溃无论如何
- 16. 如何在Android进程崩溃时创建崩溃日志
- 17. 如何处理main.m中发布的应用程序崩溃?
- 18. RNG崩溃C++程序
- 19. C++/QT:QTextStream程序崩溃
- 20. qsort崩溃程序 - C
- 21. C程序崩溃后strcpy
- 22. C++ openGL VBO崩溃程序
- 23. 程序崩溃
- 24. 如何在C++中处理Windows 8 metro应用程序中的崩溃?
- 25. 为不同的用户创建单独的处理程序 - WCF聊天
- 26. C程序设计 - 程序崩溃
- 27. 如何在应用程序崩溃时处理
- 28. 处理信号后Perl进程崩溃
- 29. 后台完成处理程序崩溃的应用程序,如果完成PushViewController
- 30. 如何在TextView Array中单独处理动态创建的textview?
这是一个相当普遍的问题。你有特定的问题吗?或者你只是想要一些方向来帮助你开始?开始构建这样的东西通常会更好,然后在代码中遇到问题时提问。 – 2010-03-08 23:52:51