用于诊断Windows上的C应用程序崩溃的工具/技术

时间:2010-09-18 09:34:07

标签: c gcc windows-services crash

我在C中编写了一个应用程序,它作为Windows服务运行。大多数用户可以毫无问题地运行应用程序,但是很少有人会因访问冲突而导致崩溃,因此我知道我在某处有错误。我已尝试设置虚拟机以尽可能地镜像用户的配置,但无法重现该问题。

我的背景是Java - 当Java应用程序崩溃时,它会生成一个堆栈跟踪,显示问题发生的确切位置,但本机应用程序并没有那么有用。 C开发人员通常使用哪些技术来追踪此类问题?我无法访问遇到崩溃的用户计算机,但我可以发送其他工具进行安装,以捕获信息。我也有Windows错误报告显示异常代码/偏移等,但这些对我来说并不重要。我已经使用gcc编译了我的应用程序 - 是否有一些编译器选项可用于在发生崩溃时生成更多信息?

2 个答案:

答案 0 :(得分:1)

在大多数现代操作系统上,您的应用程序可以安装崩溃处理程序,以便在发生崩溃时遍历堆栈。我没有在Windows上这样做的经验,但this article介绍了如何做到这一点。

答案 1 :(得分:1)

您可以尝试让用户在程序崩溃时运行ProcDump来捕获核心转储。与使用Visual Studio之类的东西不同,它是一个简单的命令行实用程序,因此让用户运行它应该没有问题。