我们有一个非托pipe的C ++ TCP服务器应用程序作为Windows服务运行,在Win2003服务器上运行几天后,它正在悄然崩溃。 没有Dr. Watson日志文件生成(Dr. Watson日志没有问题,因为它捕获同一应用程序中的其他崩溃)。 由于缺乏Dr.Watson日志文件,我们无法进一步进一步debugging。
TCP服务器应用程序是一种HTTP处理器。 它连接到广泛的networking服务器和处理数据。
有人可以请指导我可以做什么来debugging无声的崩溃..有超过1000个用户连接到此服务器在任何时候,因此它不可能在debugging模式下运行相同。 崩溃是不可重现的,并且在6个服务器中的一个服务器上在5-10天内发生一次。
任何工具,可以帮助debugging这些沉默的崩溃。 该应用程序是一个纯粹的C + +应用程序没有任何MFC或STL ..
提前致谢。
克里希纳
上次我有这样一个沉默的崩溃问题,这是因为C运行时参数验证。 ,默认情况下只是调用TerminateProcess
没有任何其他的好处(取决于你链接到的msvcrt*.dll
版本)。 如果这是你的问题的原因,你可以通过调用_set_invalid_parameter_handler
来避免它,并给予一个调用DebugBreak
(强制崩溃)或什么也不做的处理程序,从而允许将错误代码返回给调用者。 上面的链接中的细节。