2012-05-10 13 views
4

スタックトレースが完全に空になる可能性のあるシナリオはありますか?空のStackTrace。可能?

説明:私は次のように述べているマシンのイベントプロパティからコピーされたイベントログのテキストを、渡された 未処理の例外が発生し、プロセスが終了しました。

アプリケーションID:defaultdomainに

プロセスID:123

例外:System.OutOfMemoryExceptionに

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

のStackTrace

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

スタックトレースは疑わしいです。私はフォーラムやドキュメントで多くを検索しました。スタックトレースは空ではありません。 MSDNのみが「StackTraceプロパティは、最適化中に発生するインライン展開などのコード変換のために、期待どおりに多くのメソッド呼び出しを報告しないことがあります。」メソッドコールレポートについては何もありません。

これは、多層通信であるとREPONSEのための時間を取るために起こっているので、私は、スタックトレースを空にすることはできませんというのが私の容疑者に任意の修正

..私は確認のために戻って連絡する前に確認する必要がありますか?

+3

OOM例外を使用すると、何かが可能です! – Oded

+5

OutOfMemoryException? stacktraceでも十分なメモリがない可能性があります。 – nothrow

答えて

2

コールスタック自体がOOMの原因である場合があります(コールスタックが多すぎます)。

だから...あなたは問題を見る。

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

2

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

アプリケーションがメモリ不足になると、リソースが不足したためにロギングのようなエラー処理が失敗することがあります。あなたのケースでは、少なくともそれが失敗を引き起こした記憶不足状態であったことを知っています。