質問

C#アプリ(Windows 7/vs2008)からランダムなクラッシュが発生していますが、通常のスタックトレースを提供しませんが、むしろ情報を閉じ/デバッグ/検索することをお勧めします。私はVS2008の下またはスタンドアロンからアプリを実行しています - 同じことです。 「デバッグ」をクリックすると、VSの新しいインスタンスでデバッグすることをお勧めします。しかし、添付されたデバッガーは、それがどこに失敗するかを見る機会を与えておらず、出力ウィンドウにいくつかの手がかりを与えます(下)。これに対処する方法は?

VSデバッガーでの最初のチャンスの例外を有効にしなければならないようですが、どのようにしても不明でした。これについての助けに感謝します!

追加 - VS2008で例外をデバッグする方法を見つけました(debug->例外 - > 5つのカテゴリの例外をすべてチェックしました)。そして、それはまだ私にまったく同じ結果を与えてくれます - デバッガーで何が起こっているのかを見る能力なしでクラッシュ。

'ps.exe'(管理者):ロードされた 'c: windows assembly gac_msil system.deployment 2.0.0.0__03ff7f11d50a3a systemment.dll'タイプの最初のチャンス例外 'System.Deployment.Aplication.InvalidDeploymentexexception system.deployment.dllで発生しました 'system.threading.threadabortexception'の最初のチャンスの例外はmscorlib.dllで発生しました0x1964はコード0(0x0)で終了しました。スレッド0x1b24はコード0(0x0)で終了しました。タイプ「System.ArgumentOutOfRangeException」のタイプの最初のチャンス例外はmscorlib.dllで発生しました 'system.argumentoutofrangeexception'の最初のチャンス例外 'はmscorlib.dllで発生しました' system.argumentoutoutofrangeexception 'が最初のsystem.argumentoutoutofrangeexceptionで発生しました。タイプ「System.ArgumentOutofRangeException」の型例外 'はmscorlib.dllで発生しました' system.argumentoutofrangeexception 'の最初のチャンスの例外'はmscorlib.dllで発生しました 'system.argumentoutofrangeexception'がmscorlib.dllで発生しました。タイプ「System.ArgumentOutofRangeException」はmscorlib.dllで発生しました 'system.argumentoutofrangeexception'の最初のチャンス例外 'はmscorlib.dllで発生しました。 'System.ArgumentOutOfRangeException'はmscorlib.dllで発生しました 'System.threadingの最初のチャンス例外.threadabortexception 'はmscorlib.dllで発生しました。スレッド0x19b8はコード0(0x0)で終了しました。スレッド0x18F4はコード0(0x0)で終了しました。スレッド0x420はコード0(0x0)で終了しました。タイプ「System.ArgumentOutOfRangeException」のタイプの最初のチャンス例外はmscorlib.dllで発生しました 'system.argumentoutofrangeexception'の最初のチャンス例外 'はmscorlib.dllで発生しました' system.argumentoutoutofrangeexception 'が最初のsystem.argumentoutoutofrangeexceptionで発生しました。タイプ「System.ArgumentOutofRangeException」の型例外 'はmscorlib.dllで発生しました' system.argumentoutofrangeexception 'の最初のチャンスの例外'はmscorlib.dllで発生しました 'system.argumentoutofrangeexception'がmscorlib.dllで発生しました。タイプ「System.ArgumentOutofRangeException」はmscorlib.dllで発生しました 'system.argumentoutofrangeexception'の最初のチャンス例外 'はmscorlib.dllで発生しました。 'System.ArgumentOutOfRangeException'はmscorlib.dllで発生しました 'System.Argumentの最初のチャンス例外utofrangeException 'はmscorlib.dllで発生しました。タイプ「System.ArgumentoutOfRangeException」の最初のチャンス例外'はmscorlib.dllで発生しました。 mscorlib.dllでは、プログラム '[6084] ps.exe:managed'がコード-1073740940(0xc0000374)で終了しました。

役に立ちましたか?

解決

フォーミュラ1レースでそれらの大規模な杭の1つを目撃するようなものです。休息に来たrap散弾の最後のビットが報告されました:

// MessageText:
//
// A heap has been corrupted.
//
#define STATUS_HEAP_CORRUPTION           ((NTSTATUS)0xC0000374L)

はい、それは非常に深刻なタイヤの吹き飛ばしです。ヒープが破損したときに多くのことがうまくいかない。おそらく、管理されていないコードの典型的な方法で不正行為をしている管理されていないコードがあり、ヒープの整合性を悪いポインター書き込みで破壊します。診断するのは非常に難しく、そのコードを分離します。

他のヒント

VSでは、デバッグ /例外に移動し、「共通のランタイムの例外」のために「スロー」の下のチェックボックスをアクティブにします。これにより、「ファーストチャンスの例外」がキャッチされます。

展開の例外は、クリックに1回関連しているようです。使用していますか?

開発ツールが失敗した場合、出力ログファイルを作成するか、メッセージボックスを使用して追跡します。

プレス Ctrl + Alt + E Visual Studioで、またはメニューからDebug>例外を選択し、CLR例外をクリックして、すべての最初のチャンスの例外をキャッチします。それがうまくいけば、競合の時点で壊れるはずです。

それ以外の場合は、書いてみてください Debug.WriteTrace.Write コードの重要なポイントでのステートメントは、障害が発生する前に到達するポイントを確認します。デバッグと書き込みの両方があります System.Diagnostics 名前空間。

IMOヒープの腐敗をデバッグするのが最善です。WindBGを使用することです。これがブログです 役職 マネージドヒープ腐敗のデバッグに関するテスから。

Hth

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top