C# で書かれたマルチスレッド プログラム (コンソール アプリケーション) があります。
6 ~ 10 時間後まで正常に実行され、失敗して停止し、コンソールが閉じず、最後の成功ログが表示されます
エラーログ (可能なすべて) をファイルに書き込みます。
IO例外が発生してもWindowsイベントに書き込む
プログラムを特定の制限に制限するメモリガードとスレッドガードもあります。
停止すると (6 ~ 10 時間後)、エラー ログ、ハート ビート、データベース呼び出し、メモリ使用量は何も起こりません。
データベース呼び出しの待ち時間が原因でスレッドが解放されない可能性があるため、メモリリークである可能性があることはわかっています。
この停止したアプリケーションで作業して、メモリリークがどこにあるのか、どの呼び出しがブロックされているのかなど、正確な問題を知りたかっただけです。
このハング/停止したアプリケーションで機能するツールはありますか? 続行する適切な方法は何ですか。
ANTS メモリ プロファイラー、パフォーマンス プロファイラーを使用しましたが、これらのツールはすべて実行中のアプリケーションで動作します。
私が得ることができるのは、メモリダンプです。
提案は大歓迎です。
編集:最初は、最後のオプションになる方法がない場合、デバッグするために何時間も待って再実行したくありません。
デバッガーをアタッチしてブレークポイントを配置しようとすると、「ブレークポイントは現在ヒットしません....」と表示されます