X64 例外タイプ - 0D(#GP - 一般保護)

X64 例外タイプ - 0D(#GP - 一般保護)

時々、次のようなエラー ログが表示されます。

バグ報告

!!!! X64 Exception Type - 0D(#GP - General Protection)  CPU Apic ID - 00000000 !!!!
ExceptionData - 0000000000000000
RIP  - 00000000BFF8E976, CS  - 0000000000000038, RFLAGS - 0000000000210202
RAX  - 0000000000000001, RCX - 0000000000000010, RDX - AFAFAFAFAFAFAFA7
RBX  - 0000000000000020, RSP - 00000000BFF7EF60, RBP - 00000000BEC00F98
RSI  - AFAFAFAFAFAFAFAF, RDI - 00000000BFFA1720
R8   - 0000000000000000, R9  - 0000000000000028, R10 - 0000000000000020
R11  - 0000000000000002, R12 - 00000000BED0E618, R13 - 00000000BED0E818
R14  - 00000000BFF7F038, R15 - 00000000BED0E658
DS   - 0000000000000030, ES  - 0000000000000030, FS  - 0000000000000030
GS   - 0000000000000030, SS  - 0000000000000030
CR0  - 0000000080010033, CR2 - 0000000000000000, CR3 - 00000000BFC01000
CR4  - 0000000000000668, CR8 - 0000000000000000
DR0  - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000
DR3  - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400
GDTR - 00000000BFBEE698 0000000000000047, LDTR - 0000000000000000
IDTR - 00000000BF1B2018 0000000000000FFF,   TR - 0000000000000000

これは OS のハングの問題ですか、それともハードウェアのハングの問題ですか?

答え1

一般保護違反 一般保護違反はさまざまな理由で発生する可能性があります。最も一般的な理由は次のとおりです。

セグメント エラー (特権、タイプ、制限、読み取り/書き込み権限)。CPL != 0 のときに特権命令を実行しています。予約済みレジスタ フィールドに 1 を書き込んでいるか、無効な値の組み合わせを書き込んでいます (例: CR0 で PE=0 および PG=1)。ヌル記述子を参照またはアクセスしています。保存された命令ポインターは、例外の原因となった命令を指します。

関連情報