エピソード
Stowed 例外 C000027B
ストウド例外は、UWP アプリケーションによって作成される例外の一種です。 これは、WinRT API (現在は UWP) の一部として Windows 8.0 で導入されました。
例外コードは0xC000027B。
最初の例外パラメーター (0) は、STOWED_EXCEPTION_INFORMATION_HEADER構造体で始まる構造体へのポインターの配列の開始アドレスです。 Windows 8.1 以降、 STOWED_EXCEPTION_INFORMATION_V2 は使用中のバージョンです。
2 番目の例外パラメーター (1) は、配列内のポインターの数です。
ストウド例外は、障害点例外 (0xC000027C) に置き換えられたり強化されたりしました。 POF 例外と同様に、例外コードは WinRT フレームワークによって生成されます。 アプリケーションを使用するために再コンパイルする必要はありません。
ストウド例外は、非同期操作が失敗したときに発生します。 RoOriginateException または RoOriginateLanguageException 呼び出しを介してワーカー スレッドから例外が報告されると、CaptureStackBackTrace 関数呼び出しを介して現在のスレッドのスタック バックトレース (命令ポインターの配列) が収集されます。 例外のスタック バックトレースと HRESULT は IRestrictedErrorInfo オブジェクトにラップされ、WinRT の言語プロジェクション レイヤーを介して呼び出し元にルーティングされます。
例外が呼び出し元によって処理されない場合、格納された例外は致命的にスローされます。 スローは遅延されるため、関連付けられているダンプの現在のコンテキストには値はほとんどありません。 元の問題のスレッドは定期的に存在しなくなり、存在する場合は操作が終了しました (スレッドのスタック メモリが上書きされたことを意味します)。 つまり、関数パラメーターとローカル変数は使用できません。
Windows 用デバッグ ツールでこれらの問題をデバッグするときは、次の手順に従います。
- .exr -1
- パラメーターを使用してコード、ストウド例外配列アドレス、およびカウントを表示する
- !pde.dse
- 積み込まれた例外を一覧表示します
- 各 HRESULT が記述されている (!pde.err と同じ出力)
- 各 Backtrace は呼び出し履歴として表示されます
- 各 (必要に応じて) 入れ子になった例外が表示されます (例: CLR 例外の出力 !sos.pe)
その他のリソース:
- 内部 - 障害点例外
- 内部 - .exr
- 内部 - Windows SDK
- デフラグ ツール - PDE デバッガー拡張機能 (OneDrive リンク経由)
- デフラグ ツール - #136 - ユーザー モードのクラッシュ ダンプのデバッグ パート 2
- Defrag ツール - #167 - デバッグ ユーザー モード クラッシュ ダンプ Redux
- Microsoft ドキュメント - Windows 用デバッグ ツール
- NTDebugging ブログ - パート 1 + パート 2
- MSDN - RoOriginateException
- MSDN - RoOriginateLanguageException
- MSDN - IRestrictedErrorInfo インターフェイス
ストウド例外は、UWP アプリケーションによって作成される例外の一種です。 これは、WinRT API (現在は UWP) の一部として Windows 8.0 で導入されました。
例外コードは0xC000027B。
最初の例外パラメーター (0) は、STOWED_EXCEPTION_INFORMATION_HEADER構造体で始まる構造体へのポインターの配列の開始アドレスです。 Windows 8.1 以降、 STOWED_EXCEPTION_INFORMATION_V2 は使用中のバージョンです。
2 番目の例外パラメーター (1) は、配列内のポインターの数です。
ストウド例外は、障害点例外 (0xC000027C) に置き換えられたり強化されたりしました。 POF 例外と同様に、例外コードは WinRT フレームワークによって生成されます。 アプリケーションを使用するために再コンパイルする必要はありません。
ストウド例外は、非同期操作が失敗したときに発生します。 RoOriginateException または RoOriginateLanguageException 呼び出しを介してワーカー スレッドから例外が報告されると、CaptureStackBackTrace 関数呼び出しを介して現在のスレッドのスタック バックトレース (命令ポインターの配列) が収集されます。 例外のスタック バックトレースと HRESULT は IRestrictedErrorInfo オブジェクトにラップされ、WinRT の言語プロジェクション レイヤーを介して呼び出し元にルーティングされます。
例外が呼び出し元によって処理されない場合、格納された例外は致命的にスローされます。 スローは遅延されるため、関連付けられているダンプの現在のコンテキストには値はほとんどありません。 元の問題のスレッドは定期的に存在しなくなり、存在する場合は操作が終了しました (スレッドのスタック メモリが上書きされたことを意味します)。 つまり、関数パラメーターとローカル変数は使用できません。
Windows 用デバッグ ツールでこれらの問題をデバッグするときは、次の手順に従います。
- .exr -1
- パラメーターを使用してコード、ストウド例外配列アドレス、およびカウントを表示する
- !pde.dse
- 積み込まれた例外を一覧表示します
- 各 HRESULT が記述されている (!pde.err と同じ出力)
- 各 Backtrace は呼び出し履歴として表示されます
- 各 (必要に応じて) 入れ子になった例外が表示されます (例: CLR 例外の出力 !sos.pe)
その他のリソース:
- 内部 - 障害点例外
- 内部 - .exr
- 内部 - Windows SDK
- デフラグ ツール - PDE デバッガー拡張機能 (OneDrive リンク経由)
- デフラグ ツール - #136 - ユーザー モードのクラッシュ ダンプのデバッグ パート 2
- Defrag ツール - #167 - デバッグ ユーザー モード クラッシュ ダンプ Redux
- Microsoft ドキュメント - Windows 用デバッグ ツール
- NTDebugging ブログ - パート 1 + パート 2
- MSDN - RoOriginateException
- MSDN - RoOriginateLanguageException
- MSDN - IRestrictedErrorInfo インターフェイス
ご意見およびご提案がある場合は、 こちらから問題を送信してください。