一般保護錯誤 - Wikiwand
For faster navigation, this Iframe is preloading the Wikiwand page for 一般保護錯誤.

一般保護錯誤

維基百科,自由的百科全書

此條目翻譯品質不佳,原文在en:General protection fault。翻譯者可能不熟悉中文或原文語言,也可能使用了機器翻譯,請協助翻譯本條目或重新編寫,並注意避免翻譯腔的問題。明顯拙劣的機器翻譯請改掛((d|G13))提交刪除。

一般保護錯誤(英語:General protection fault,縮寫:GPF)是在英特爾x86AMDx86-64架構和其它架構中的一種錯誤(或者一種中斷),指正在執行的程式(核心用戶態程式)違反處理器架構中的保護措施的情況。此機制最初在1986年英特爾80386處理器的程式設計師參考手冊第9.8.13節中描述。一般保護錯誤通過中斷向量值13)實現。

若處理器偵測到保護違例,會停止目前代碼的執行,並行出GPF中斷。大多數情形下,作業系統會簡單地關閉觸發GPF的行程,告知用戶,並繼續執行其它程式。但如果作業系統沒能擷取這一錯誤(如在作業系統從GPF中斷處理常式中返回前發生了另一次違例),處理器會發出雙重錯誤(中斷向量值8,一種常見的藍屏情形)。如果再次發生了違例,則處理器會關閉(參見三重錯誤),其後只會回應復位(即按下機器的復位按鈕)、啟動(重新啟動系統)或不可封鎖中斷(除非其之前在處理此類中斷時出錯)。

作業系統行為

在一些版本的Microsoft Windows中,一般保護錯誤確實會被報告為「一般保護錯誤」。
但在大部分版本中,Windows會給出如下錯誤:

  • Unrecoverable Application Error.(Windows 3.0
  • [程式] has caused a General Protection Fault in module [模組] at [記憶體位址].(Windows 3.13.1x
  • 該程式執行了非法操作,即將關閉。(Windows 9x & Windows NT 4.0
  • [程式]產生了錯誤,會被Windows關閉。(Windows 2000
  • [程式] has caused an error in [模組]. [程式] will now close.(Windows Me
  • [程式/描述]遇到問題需要關閉。我們對此引起的不便表示抱歉。(Windows XP
  • [程式/描述]已停止工作。(Windows VistaWindows 7

在類Unix的系統中,此錯誤會被分別報告(比如Linux下的段錯誤等)。

{{bottomLinkPreText}} {{bottomLinkText}}
一般保護錯誤
Listen to this article