2011-09-29 41 views
0

我最近一直在测试我的C++服务器应用程序,并且当几个客户端连接并做了各种事情时,我一直在收到奇怪的运行时错误,导致服务器崩溃。你能帮助我 - 当我只有这些事件查看器日志,我该如何调试以下错误:运行时错误 - (图片)

Event Viewer Results

错误的类型是“C++服务器停止响应”,只有一个选项关闭对话框。我甚至看不到控制台。

请让我知道,如果有任何其他信息,我可以提供。

谢谢。

+0

http://social.msdn.microsoft.com/forums/en-US/sqldataaccess/thread/aa657bbd-5548-48e2-b3d2-2f3c772f5e62/表示Fault bucket'...由Watson错误报告框架生成,但应该有一个事件日志条目,它描述了什么应用程序失败以及在什么地址.'所以很明显,这没有帮助 –

+0

小滚动框中的消息是什么?可以提示吗? (不知道,只是戳我的鼻子) –

+0

我不知道。但是,你是对的,有一些“沃森”的错误消息...我更新了它。注意“比较”提到...我如何找到该内存地址? – Matthew

回答

1

我会建议两项行动你拿:

1)添加足够的日志记录(一个文件或标准输出),这样就可以追查问题的来源。

2)在调试器中运行您的服务器,以便您可以精确定位故障的位置和类型。如果设置正确,这将为您提供一个调用堆栈和索引到您的源文件

我可以推荐WinDbg作为任务的独立调试器,但我会假设您使用的是具有调试功能的IDE。

如果由于某种原因,您无法在调试器中运行服务器,那么当出现错误时,您至少可以附加一个服务器。因此,不是Watson博士给你提供信息,而是WinDbg可以附加到给你一个调用堆栈和所有其他优点的过程。

+0

我一定会考虑找到一个独立的调试器。我以前没有用过。 – Matthew

1

在服务器上配置WER(Windows错误报告),以将崩溃应用程序的崩溃转储保存到磁盘。然后在WinDbg中加载并检查它们。不要忘记在调试器中设置应用程序的符号文件(.pdb)以查看堆栈和变量。