ホームページ > バックエンド開発 > C++ > 私の64ビットvs2010 Winformsアプリケーションで、未処理の例外が欠けているのはなぜですか?

私の64ビットvs2010 Winformsアプリケーションで、未処理の例外が欠けているのはなぜですか?

Patricia Arquette
リリース: 2025-02-01 22:16:13
オリジナル
420 人が閲覧しました

Why Are Unhandled Exceptions Missing in My 64-bit VS2010 WinForms Application?

VS2010で64ビットWinFormsアプリをデバッグする:ハンドルされていない例外がありません

Visual Studio 2010で新しい64ビットWindows Winformsアプリケーションのデバッグ?ハンドルされていない例外がデバッガーをトリガーしていないことがあるかもしれません。これは、64ビットウィンドウマネージャーの通知(

イベントなど)に応答するコードの例外を傍受するWOW64エミュレーションレイヤーによるものです。 Form1_Load

根本原因と衝撃

問題は、32ビット(アプリ)から64ビット(通知ソース)コードに移動する例外を正しく処理できないことに起因しています。 これにより、例外がデバッガーには見えないため、デバッグが困難になります。

solutions

これに対処するためのいくつかの方法があります:

ターゲットAnyCPU、32ビットの設定を無効にします。
    プロジェクトのプラットフォームターゲットを「anyCPU」に設定し、「32ビット」を選択し、wow64問題をバイパスします。 注:これにより、2013年以前にVSバージョンで「編集と続行」が無効になり、32ビット依存関係の問題を引き起こす可能性があります。
  • clr例外を有効にする:デバッガーの「例外」ウィンドウ(デバッグ>例外)で、CLRの例外については「スローされた」ボックスを確認してください。これにより、例外の起源にブレークポイントが強制されます
  • wrap
  • イベントハンドラーコードをブロックに囲みます。 詳細なレポートで制御されたクラッシュのために
  • ブロックでを使用してください。 Loadtry/catch調整Loadメソッドでは、try/catchに電話して、メッセージループがデバッグ中に例外が抑制されるのを防ぐために電話してください。 Environment.FailFast()catch再評価
  • イベントの使用:
  • イベントハンドラーが本当にすべてのコードを必要とするかどうかを検討してください。 コンストラクターにいくつかのアクションを移動すると役立つ場合があります UnhandledExceptionModeWindows 8以降へのアップグレード:新しいWindowsバージョンはWOW64の問題に対応しています。 Main() Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException)これらのソリューションは、根本的な問題を修正しませんが、このシナリオで未処理の例外をデバッグする実用的な方法を提供します。

以上が私の64ビットvs2010 Winformsアプリケーションで、未処理の例外が欠けているのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート