GPF の原因となったプロセスを検出する方法は?
1256 次
1 に答える
1
あなたの質問を理解しているかどうかわかりません。GPF - プロセッサが割り込みを発行する状況です。
これがユーザーモードで発生した場合、SEH 例外に変換され、プロセスによって処理される可能性があります。処理されない場合、プロセスは「クラッシュ」します。手段 - 見苦しいメッセージ ボックスが表示され、プロセスが終了します (設定によっては、プロセスがデバッグされたり、デバッグ ダンプが生成されたりすることもあります)。
これがカーネルモードで発生した場合 - 2 つの可能性があります。これが例外が許可されているコンテキストで発生した場合、SEH 例外が発生して処理されます (ユーザーモードと同様)。ただし、例外が処理されない場合、または GPF が発生したコンテキストで例外が許可されない場合は、OS がシャットダウンし、いわゆる BSOD (ブルー スクリーン オブ デス) が表示されます。
あなたの質問については、いくつかの可能性があります。
- OS が停止し、カーネル モードで GPF の原因となったシステム コールを行ったプロセスを知りたい。これは、カーネル デバッガーが接続されている場合に検出できます。エラーの原因となったドライバーも表示されます。
- GPF はプロセス内のユーザー モードで発生し、処理されません。このプロセスはクラッシュし、どのプロセスがそれであったかを確実に知ることができます。
- GPS はプロセス内で発生し、処理され、プロセスは引き続き実行されます。そして、あなたはこれについて通知を受けたいと思っています。このために、デバッガーを使用してプロセスにアタッチできます。プロセス内で SEH 例外が発生するたびに、OS からデバッガーに通知されます。
于 2010-05-11T08:22:11.157 に答える