4

スタック トレースが完全に空になるシナリオはありますか? マシンのイベント プロパティからコピーされたイベント ログ テキストが渡されました。

説明: 未処理の例外が発生し、プロセスが終了しました。

アプリケーション ID : DefaultDomain

プロセスID:123

例外: System.OutOfMemoryException

メッセージ: タイプ 'System.OutOfMemoryException' の例外がスローされました。

スタックトレース:

詳細については、ヘルプとサポート センター ( http://go.microsoft.com/fwlink/events.asp ) を参照してください。

スタック トレースは疑わしいように見えます。フォーラムやドキュメントをよく検索しましたが、スタック トレースが空であることについては何もありません。MSDN のみが「StackTrace プロパティは、最適化中に発生するインライン化などのコード変換が原因で、期待されるほど多くのメソッド呼び出しを報告しない場合があります」と述べていますが、メソッド呼び出しレポートがないことについてはまったく言及していません。

これは多層通信であり、応答に時間がかかるため、確認のために折り返し連絡する前に確認する必要があります..

スタック トレースを空にすることはできないという疑いに対する修正はありますか?

4

2 に答える 2

2

場合によっては、コール スタック自体が OOM の原因である可能性があります (コール スタックが多すぎる)。

だから...あなたは問題を参照してください。

または、ヒープが使い果たされている可能性があります。または... または、@Oded コメントを参照してください。

于 2012-05-10T09:09:54.530 に答える
2

イベント ログにメッセージを作成するには、文字列プロパティException.StackTraceを取得する必要があります。このプロパティの値を計算するには、新しい StackTraceオブジェクトを作成する必要があります。アプリケーションがメモリ不足の場合、割り当てが失敗するため、これが不可能になることがあります。これは、スタック トレースが欠落している理由を説明している可能性があります。

アプリケーションがメモリ不足になると、ロギングなどのエラー処理でさえリソース不足のために失敗する可能性があります。あなたの場合、少なくとも、失敗を引き起こしたのはメモリ不足の状況であることを知っています。

于 2012-05-10T09:16:58.353 に答える