Visual Studio 2008 c++ 中无声崩溃应用

发布于 2024-09-08 12:52:12 字数 410 浏览 0 评论 0原文

我们有一个作为 Windows 服务运行的非托管 C++ TCP 服务器应用程序,该应用程序在 Win2003 服务器上运行几天后悄然崩溃。没有生成 Dr. Watson 日志文件(Dr. Watson 日志没有问题,因为它捕获同一应用程序中的其他崩溃)。由于缺少 Dr. Watson 日志文件,我们无法进一步调试此问题。

TCP 服务器应用程序是一种 HTTP 处理器。它连接到广泛的网络服务器并处理数据。

有人可以指导我如何调试静默崩溃吗?随时都有 1000 多个用户连接到该服务器,因此不可能在调试模式下运行相同的用户。该崩溃不可重现,并且每 5-10 天在 6 台服务器之一上发生一次。

任何可以帮助调试这些无声崩溃的工具。该应用程序是一个纯 C++ 应用程序,没有任何 MFC 或 STL。

提前致谢。

克里希纳

We have a unmanaged C++ TCP server application running as a Windows service that is silently crashing after few days of run on Win2003 server. There is no Dr. Watson log file getting generated (no issue with Dr. Watson log as it catches other crashes in same application). Due to lack of Dr. Watson log file, we are unable to progress on how to debug this further..

The TCP server application is sort of HTTP processor. It connects to wide range of webserver and processes data.

Can someone please guide me what can be done to debug the silent crashes.. There are 1000+ users connected to this server at any instant and thus its not possible to run the same in debug mode. The crash is not reproducible and happens once in 5-10 days on one of the 6 servers..

Any tool that can help to debug these silent crashes. The application is a pure C++ application without any MFC or STL..

Thanks in Advance.

Krishna

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酷遇一生 2024-09-15 12:52:12

上次我遇到这样的无提示崩溃问题,是因为 C 运行时参数验证。,默认情况下仅调用 TerminateProcess 而没有任何其他好处(取决于您链接到的 msvcrt*.dll 版本)。如果这是导致问题的原因,您可以通过调用 _set_invalid_parameter_handler 并提供一个处理程序来避免它,该处理程序要么调用 DebugBreak(强制崩溃),要么不执行任何操作,允许出现错误返回给调用者的代码。详细信息在上面的链接中。

The last time I had a silent crash problem like this, it was because of C runtime parameter validation., which by default just calls TerminateProcess without any other goodness (depending on which version of msvcrt*.dll you link to). If this is the cause of your problem, you can avoid it by calling _set_invalid_parameter_handler and giving a handler that either calls DebugBreak (forcing a crash) or does nothing, allowing an error code to be returned to the caller. Details in the link above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文