1

Win2003 サーバーで数日間実行した後、サイレントにクラッシュする Windows サービスとして実行されているアンマネージ C++ TCP サーバー アプリケーションがあります。ワトソン博士のログ ファイルは生成されません (ワトソン博士のログは同じアプリケーション内の他のクラッシュをキャッチするため、問題はありません)。ワトソン博士のログ ファイルがないため、これをさらにデバッグする方法を進めることができません..

TCP サーバー アプリケーションは、一種の HTTP プロセッサです。幅広いWebサーバーに接続し、データを処理します。

サイレントクラッシュをデバッグするために何ができるか教えてください..このサーバーには常に1000人以上のユーザーが接続しているため、デバッグモードで同じものを実行することはできません. クラッシュは再現性がなく、6 台のサーバーのいずれかで 5 ~ 10 日に 1 回発生します。

これらのサイレント クラッシュのデバッグに役立つツール。アプリケーションは、MFC または STL を使用しない純粋な C++ アプリケーションです。

前もって感謝します。

クリシュナ

4

1 に答える 1

2

前回このようなサイレント クラッシュの問題が発生したのは、C ランタイム パラメータの検証が原因でした。、デフォルトではTerminateProcess、他の利点なしで呼び出すだけです(msvcrt*.dllリンク先のバージョンによって異なります)。これが問題の原因である場合は、呼び出す(クラッシュを強制する) か何もしない_set_invalid_parameter_handlerハンドラーを呼び出して指定し、エラー コードが呼び出し元に返されるようにすることで、問題を回避できます。DebugBreak詳細は上記リンクにて。

于 2010-07-08T17:21:09.523 に答える