TWI678615B - 在資料處理裝置中進行除錯 - Google Patents

在資料處理裝置中進行除錯 Download PDF

Info

Publication number
TWI678615B
TWI678615B TW104123919A TW104123919A TWI678615B TW I678615 B TWI678615 B TW I678615B TW 104123919 A TW104123919 A TW 104123919A TW 104123919 A TW104123919 A TW 104123919A TW I678615 B TWI678615 B TW I678615B
Authority
TW
Taiwan
Prior art keywords
circuit system
exception
mode
predetermined
debugging
Prior art date
Application number
TW104123919A
Other languages
English (en)
Other versions
TW201610672A (zh
Inventor
威廉斯麥克約翰
Michael John Williams
克拉斯克賽門約翰
Simon John Craske
Original Assignee
英商Arm股份有限公司
Arm Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 英商Arm股份有限公司, Arm Limited filed Critical 英商Arm股份有限公司
Publication of TW201610672A publication Critical patent/TW201610672A/zh
Application granted granted Critical
Publication of TWI678615B publication Critical patent/TWI678615B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2236Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test CPU or processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/481Exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本案公開了一種具有除錯狀態的資料處理裝置,處理電路系統105在該除錯狀態中執行從除錯介面115接收到之指令。當在除錯狀態中控制參數具有預定值之情況下,控制變更電路系統135禁止以預定特權模式執行指令。在處於除錯狀態中之同時回應於正在被傳訊之第一異常,其中該第一異常意欲以預定特權模式處理,且進一步回應於具有預定值之控制參數,傳訊電路系統115傳訊將在與預定特權模式不同的特權模式處理之第二異常,並設定辨識第一異常類型之資訊。因此,無須進入被禁止之(預定)特權模式,便可使除錯器110意識到通常將以預定特權模式(亦即被禁止之特權模式)處理之第一異常。

Description

在資料處理裝置中進行除錯
本揭示案係關於資料處理裝置,特定言之係關於接收來自除錯器之指令的資料處理裝置。
在一些資料處理裝置中,有數個不同的特權模式(執行模式)。處理電路系統可在任一時間以該等特權模式中之一者操作。例如,在處理作業系統之操作時,處理電路系統可在較高特權等級操作,該特權等級容許對硬體裝置或記憶體進行直接存取。相反,當執行在作業系統條件下執行之軟體時,處理電路系統可以較低特權模式操作,該模式僅允許存取記憶體中已經明確分配至該軟體之區域。
除錯器可用以使處理電路系統暫停其正常執行(例如對自記憶體擷取之指令的正常執行)且替代地執行一或更多個直接注入指令。該等注入指令例如可用以設定或存取記憶體中保存之值。因此,可觀測及測試資料處理裝置或由資料處理裝置執行之軟體之行為。在一些情況下,在使用除錯器之同時,需要防止處理電路系統進入更高特權模式。此可限制使用者開拓處理電路系統之更高特權模式之能力,例如藉由注入使得處理電路系統(在其更 高的操作特權模式中)存取已經分配至其他(可能為專屬)應用程式之記憶體的指令來進行開拓。
然而,當注入指令之執行導致異常產生時,則可能出現困難。通常,異常可由以更高特權等級運行之軟體來處理。然而,若處理電路系統在除錯時被阻止進入該更高特權模式,則資料處理裝置可能無法回應於所產生之異常,或甚至無法向使用者通知該異常。此情況在假定除錯器通常可用以尋找資料處理裝置或其軟體之故障的情況下尤其成問題。
依據一個態樣,提供了一種裝置,該裝置包括:除錯介面,用以接收來自除錯器之指令;處理電路系統,用以在除錯狀態下執行自除錯介面接收到的指令;控制電路系統,若控制參數具有預定值,則用以在除錯狀態中之同時禁止以預定特權模式執行指令;及傳訊電路系統,用以在除錯狀態中且控制參數具有預定值之同時回應於正在被傳訊且將以預定特權模式處理之第一異常,傳訊將以不同特權模式處理之第二異常,且設定辨識第一異常類型之資訊。
依據第二態樣,提供了一種方法,該方法操作處理電路系統,該系統具有除錯狀態以用於執行自除錯介面接收到之指令,其中,若控制參數具有預定值,則處理電路系統被禁止在處於除錯狀態中的同時以預定特權模式執行指令,該方法包括以下步驟:接收信號,該信號指 示將以預定特權模式處理之第一異常已產生;若在處理電路系統處於除錯狀態中且控制參數具有預定值之情況下接收到指示第一異常已產生之該信號,則傳訊將以不同特權模式處理之第二異常;及設定辨識第一異常類型之資訊。
依據第三態樣,提供了一種裝置,該裝置包括:除錯介面手段,用於接收來自除錯器手段之指令;處理手段,用於在除錯狀態中執行從除錯介面手段接收到之指令;控制手段,若控制參數具有預定值,則用於在處於除錯狀態之同時禁止以預定特權模式執行指令;及傳訊手段,用於在處於除錯狀態中且控制參數具有預定值之同時回應於正在被傳訊且將以預定特權模式處理之第一異常,傳訊將以不同特權模式處理之第二異常,且設定辨識第一異常類型之資訊。
100‧‧‧裝置
105‧‧‧處理電路系統
110‧‧‧除錯器
115‧‧‧除錯介面
120‧‧‧輸入緩衝器
125‧‧‧輸出緩衝器
135‧‧‧控制電路系統
140‧‧‧記憶體管理單元
145‧‧‧記憶體管理單元
150‧‧‧記憶體
155‧‧‧傳訊電路系統
160‧‧‧狀態暫存器
200‧‧‧流程圖
400‧‧‧流程圖
S205‧‧‧步驟
S210‧‧‧步驟
S215‧‧‧步驟
S220‧‧‧步驟
S225‧‧‧步驟
S230‧‧‧步驟
S235‧‧‧步驟
S240‧‧‧步驟
S305‧‧‧步驟
S310‧‧‧步驟
S315‧‧‧步驟
S320‧‧‧步驟
S325‧‧‧步驟
S330‧‧‧步驟
S340‧‧‧步驟
S345‧‧‧步驟
S355‧‧‧步驟
S405‧‧‧步驟
S410‧‧‧步驟
S415‧‧‧步驟
S420‧‧‧步驟
S425‧‧‧步驟
S430‧‧‧步驟
S435‧‧‧步驟
S440‧‧‧步驟
S445‧‧‧步驟
本技術之其他態樣、特徵及優勢將在以下實例之描述中顯而易見,將結合附圖閱讀該描述,在附圖中:第1圖是圖示依據一個實施例之電路系統的示意圖;第2圖圖示依據一個實施例之不同特權模式之間的關係;第3圖是一流程圖,該圖圖示依據一個實施例之控制參數對於接收到之異常的效應; 第4圖是一流程圖,該圖圖示依據一個實施例之控制參數對於接收變更特權等級之請求的效應;及第5圖是一流程圖,該圖圖示依據一個實施例之控制參數對於接收進入除錯狀態之請求的效應。
除錯介面用以接收來自除錯器之指令,當處理電路系統處於除錯狀態中時,由處理電路系統來執行從除錯介面接收到之該等指令。控制電路系統用以控制處理電路系統,以便可依據控制參數而在處理電路系統處於預定特權模式中之同時阻止除錯(除錯指令之執行)進行。控制電路系統可為專用電路,形成處理電路系統之部分的電路,或甚至為處理電路系統自身。當意欲以預定特權模式處理之第一異常產生時,若處理電路系統處於除錯狀態且若控制參數具有預定值以使得處理電路系統被禁止變更為該預定特權模式以處理該異常,則傳訊電路系統傳訊第二異常。第二異常將以不同於預定特權模式之特權模式來處理。
此外,亦設定辨識所產生之第一異常的類型之資訊。因此,處理電路系統能夠進入不同特權模式,且由此提供對所產生之第一異常的回應。藉由使用所設定之資訊,可使除錯器意識到第一異常。以此方式,即使不可能矯正導致第一異常產生之情況,但有可能通知除錯器第一異常發生。
若控制參數具有預定值且若處理電路系統處於除錯狀態,則控制電路系統禁止處理電路系統變更為預定特權模式。以此方式,藉由禁止處理電路系統在除錯狀態有效時進入預定特權模式,防止了以預定特權模式執行指令而裝置同時處於除錯狀態中。
若控制參數具有預定值且若處理電路系統處於預定特權模式,則控制電路系統禁止處理電路系統進入除錯狀態。以此方式,藉由禁止處理電路系統在處於預定特權模式中時進入除錯模式,防止了以預定特權模式執行指令而裝置同時處於除錯狀態中。
預定特權模式可處於比不同特權模式更高的特權等級。因此,藉由設定辨識第一異常之類型的資訊,處理電路系統無需為了獲取辨識可用(例如除錯器可用之)第一異常之類型的資訊而進入更高的特權模式。由此,系統安全性可得以維持。應注意,即使預定特權模式處於比不同特權模式更高的特權等級,此情況亦非意味著必須有嚴格模式階層。更高的特權模式可為比不同特權模式更具特權之任何模式。
有數種方式可用以設定辨識第一異常類型之資訊。在一些實施例中,狀態暫存器用以儲存辨識第一異常類型之資訊,其中狀態暫存器可由除錯介面存取。因此,除錯器可經由除錯介面獲取辨識第一異常類型之資訊。在其他實施例中,狀態暫存器之值可能不對除錯器直接可見,但除錯介面可憑藉經由除錯介面發出之除錯指令 而存取該值,該等除錯指令在由處理電路系統執行時使得狀態暫存器中之值經由除錯介面寫出。
在一些實施例中,辨識第一異常類型之資訊包括一值,該值對應於在除錯狀態中不能出現之異常。例如,回應於除錯事件而產生之除錯異常識別碼。該種異常在除錯狀態下通常不能發生,因為在除錯狀態下時不會發生其他除錯事件。使用該等值可為有效,因為不必分配新識別碼以表示發生未處理異常之事實。
第一異常可與記憶體故障有關。例如,第一異常可與記憶體轉換故障有關。記憶體轉換故障例如可由於從虛擬記憶體位址向實體記憶體位址之失敗轉換而發生,該失敗轉換例如歸因於存取許可不足以存取目標記憶體之特定區域。
在一些實施例中,第一異常是由於在已執行從虛擬位址向中間位址進行第一轉換之後,又嘗試從中間位址向實體位址進行第二轉換而產生。該種情況可在例如使用超管理器之情況下發生。例如,使用者應用程式可請求對虛擬記憶體位址進行存取。虛擬記憶體位址可轉換為受客作業系統控制之實體位址。然而,由於客作業系統並非主機作業系統(或超管理器),因此客作業系統不提供實體記憶體位址,且改為提供實際上為虛擬之「實體記憶體位址」。此虛擬實體位址是中間位址之實例。然後,從中間位址向實體位址執行第二轉換,且此舉一般將在可直接 存取實體記憶體之超管理器或主機作業系統之控制下執行。
在該種配置中,可暫停使用者應用程式之執行以便開始除錯,且除錯器注入存取記憶體之一指令。此舉可導致「第二轉換異常」產生。然而,因為裝置處於除錯狀態中,因此若控制參數具有預定值,則可禁止處理電路系統變更為可處理第二轉換異常之特權模式。本技術之發明者已認識到此情況為次最佳,因為除錯器在彼情況下不會意識到該異常。因此,藉由傳訊第二異常,其中該第二異常將以與預定特權模式不同的特權模式處理,而處理電路系統被禁止進入該預定特權模式,且藉由設定辨識第一異常類型(亦即第二轉換異常)之資訊,有可能至少將已發生之異常的性質通知除錯器。
裝置可包括第一記憶體管理單元以執行第一轉換,第一轉換基於由處理電路系統回應於以低於預定特權模式之特權模式執行的軟體而設定之第一配置資料;及包括第二記憶體管理單元以執行第二轉換,該第二轉換基於由處理電路系統回應於以預定特權模式執行之軟體而設定之第二配置資料。在其他實施例中,可存在單一記憶體管理單元,該單元基於兩組配置資料執行兩個操作。特定而言,記憶體管理單元可執行轉換旁看緩衝器中之結果的快取,且此舉可快取任一轉換之結果及/或合併結果。
第一配置資料及第二配置資料可由處理電路系統(例如回應於軟體而)設定,以便指示與特定記憶體 區塊關聯之一組許可。以此方式,有可能指示特定軟體應用程式具有對於不同記憶體區段之不同存取等級。以將會違反許可之方式嘗試存取記憶體區域可導致發生記憶體故障。
預定特權模式可為超管理器特權模式,且該不同特權模式可為客作業系統特權模式。術語「超管理器」特權模式意在涵蓋對超管理器及主機作業系統之使用。超管理器或主機作業系統可由此賦能數個客作業系統直接在該超管理器或主機作業系統下執行。每一客作業系統可向在客作業系統下執行之一或更多個使用者應用程式提供虛擬化環境。當然,將瞭解,超管理器系統可包括數個其他特權模式。
超管理器系統可提供數個情境,在該等情境中,記憶體之部分被限制於特定軟體片段。例如,客作業系統可能不允許一個應用程式存取分配至另一應用程式之記憶體區段。然而,客作業系統自身及超管理器能夠存取所有記憶體區域。同樣地,分配至一個客作業系統之記憶體區段無法由另一個客作業系統或其應用程式存取。
亦可使用其他特權模型。例如,一或更多個「主機應用程式」可在超管理器下直接執行,而非在於超管理器下執行之客作業系統下執行。在沒有客作業系統來管理主機應用程式之情況下,無法由客作業系統處理異常。此外,可能存在與以超管理器特權模式處理異常相關之安全性問題。因此,預定特權模式可包括超管理器執行模式及 執行該等主機應用程式之模式(但可不包括執行其他軟體的模式)。
回應於處於除錯狀態之處理電路系統及不具有預定值之控制參數,可允許處理電路系統進入預定特權模式。因此,可在處理電路系統處於超管理器特權模式之同時賦能除錯發生,只要控制參數具有除預定值以外的值。
在處理電路系統處於除錯狀態中且控制參數具有預定值之情況下,傳訊電路系統可回應於正在被傳訊且將以預定特權模式處理之第三異常,傳訊將以不同特權模式處理之第四異常,且不設定辨識第三異常類型之資訊。對於一些異常而言,僅傳訊將以不同特權模式處理之第四異常可為可接受的。換言之,可能無須設定辨識第三異常類型之資訊。此情況例如可為以下情況:以預定特權模式產生異常,但該異常亦可以不同特權模式處理。在該種情境下,可能無須設定辨識第三異常類型之資訊,因為以該不同特權模式運行之軟體能夠自行判定異常類型。
第1圖圖示依據一個實施例之裝置100。該裝置包括處理電路系統105,該處理電路系統例如可為中央處理單元(central processing unit;CPU)。處理電路系統105接收來自除錯器110之一或更多個指令。除錯器110例如可在不同資料處理裝置上執行。指令從除錯器110經由除錯介面115而接收到,該除錯介面經由輸入緩衝器120連接至處理電路系統105。換言之,除錯器110 將指令傳輸至除錯介面115,該除錯介面115將指令儲存在輸入緩衝器120中。處理電路系統105可因此查詢輸入緩衝器120以便存取指令。在一些情況下,若指令由處理電路系統105執行,則結果可儲存在輸出緩衝器125中。除錯器110可經由除錯介面115查詢輸出緩衝器125。以此方式,執行特定指令之結果可從處理電路系統105發送返回除錯器110。此允許使用者判定執行由除錯器110插入/注入之特定指令之效應。
處理電路系統105可以一或更多個不同特權模式(執行模式)運行。處理電路系統105可採用何種操作可依據處理電路系統105之當前模式而定。例如,特定模式可限制當前在處理電路系統105上執行之軟體可採取之操作。因此,藉由變更處理電路系統105之模式,可執行多個軟體片段,其中每個軟體片段具有不同特權。
在第1圖中圖示之實施例中,提供控制電路系統135,以在發生除錯之同時阻止以更高等級之執行特權執行指令。特定而言,依據控制參數,在處理電路系統105處於除錯狀態時,控制電路系統禁止處理電路系統105進入預定特權模式,且當處理電路系統105處於預定特權模式時,控制電路系統禁止處理電路系統105進入除錯狀態。因此,使用者被阻止進行可能導致裝置100安全性降低之指令執行。例如,可阻止使用者執行導致私有或秘密資料被存取並返回除錯器之指令。同樣地,可阻止使用者中斷由處理電路系統105使用之資料。控制參數能夠 去能該等禁止操作。特定而言,該等禁止操作在控制參數具有預定值時(例如在控制參數經斷定時)有效。
處理電路系統105使用記憶體管理單元140、145以便存取記憶體150。藉由使用記憶體管理單元140、145,有可能不僅將虛擬位址轉換至實體位址,而且亦管理關於虛擬位址或實體位址上之一組許可,以便保證僅特定軟體能夠存取記憶體150之特定區域。可設定許可以將記憶體區域(該區域可由起始位址與結束位址或特定長度定義)分配至特定軟體。該特定軟體(及該特定軟體執行時所在的任何軟體,如客作業系統或超管理器)可自由存取該記憶體區域。然而,可假定其他軟體無法存取該記憶體區域。將瞭解,有數個不同方式可用以為記憶體之特定區域設定許可。除本案中明確說明之彼等機制,其他機制將對熟習該項技術者顯而易見。
裝置100亦包括傳訊電路系統155。傳訊電路系統155(例如異常控制器)可用於將異常傳訊至處理電路系統105。異常可藉由傳訊電路系統155回應於外源、回應於記憶體管理單元140、145,及回應於處理電路系統105自身而傳訊。當異常經傳訊時,可由在處理電路系統105上執行之軟體來處理異常。依據異常性質(亦即已產生之異常的類型),可由在處理電路系統105上以特定特權模式執行之軟體來處理異常。例如,在外部中止、中斷、第二階段故障或指令陷阱之情況下,可不得不由在最高特權等級運行之軟體來處理異常,如由超管理器或主機 作業系統來處理異常。然而,如先前所論述,若例如當處理電路系統105處於除錯狀態中時,控制電路系統135可禁止處理電路系統105進入特定特權模式。因此,可出現一情境,在該情境中,處理電路系統105被禁止進入特權模式,而為了回應於已產生之異常,該特權模式是必需的。在一些情況下,有可能將異常重新安排發送,以使得該異常以由控制電路系統135所允許之更低特權模式被處理。
當除錯發生時,處理電路系統105暫停執行從記憶體150獲得之指令,且改為執行由除錯器110注入之指令。因此,在眾多情況下,此舉將僅足以指示異常已產生。換言之,無需執行由以更高執行特權模式執行之軟體所提供之完整異常處理常式。因此,將異常重新安排發送以便指示異常已發生之過程即可能已足夠。特定而言,重新安排發送可允許除錯器110之使用者判定由於執行除錯器110所注入之最新指令而已發生特定異常,即使不執行完整的異常處理常式亦如此。
儘管如此,對於一些異常而言,該種重新安排發送是不充足的。第二階段故障是一種記憶體轉換故障。第二階段故障是由兩次記憶體轉換中之第二次所導致的一種記憶體故障。在第一轉換中,虛擬位址轉換為中間位址,且在第二轉換中,中間位址轉換為實體位址。例如,第一轉換可基於由處理電路系統回應於以更低特權模式(如客作業系統)執行之軟體而設定的第一記憶體管理單 元140中之第一配置資料,且第二轉換可基於由處理電路系統回應於以更高特權模式執行之軟體而設定的第二記憶體管理單元145中之第二配置資料。第二階段故障係關於在第二轉換期間之故障發生。由於第二轉換基於由處理電路系統回應於以更高的執行特權模式(如超管理器)執行之軟體而設定之第二配置資料,因此在不處於除錯狀態時,第二轉換最適合用於該特定軟體(例如超管理器)在異常產生時處理異常。又一問題可能出現,因為在將異常重新安排發送至更低的執行特權模式時,除錯器110可能不恰當地判定異常為第一階段故障,以及由於基於第一記憶體管理單元140中之第一配置資料進行之轉換而發生之故障。在第1圖圖示之實施例中,此問題藉由傳訊電路系統155對將以更低特權模式處理之第二異常進行傳訊,且亦設定辨識狀態暫存器160中之第一異常(第二階段故障)類型之資訊而得以改善。此特殊「信種」值給予在處於除錯狀態下時不能出現之值。例如,辨識第一異常類型之資訊可包括回應於除錯事件而產生之除錯異常之識別碼。因為在所述情況中,處理電路系統105已處於除錯狀態,因此通常不可能產生除錯異常,因為在除錯狀態下不會發生其他除錯事件。藉由經由除錯介面115讀取狀態暫存器160之值,除錯器110能夠偵測到此特殊值,且亦偵測到所產生之第一階段故障,以便判定所發生之第二階段故障。
第2圖圖示依據一個實施例可在資料處理裝置100中執行之不同軟體之間的示例性關係。超管理器(或主機作業系統)以特權模式EL2執行。數個客作業系統在超管理器下以特權模式EL1執行。然後,數個應用程式在每一客作業系統下以特權模式EL0執行。此外,數個主機應用程式直接在超管理器下以特權模式EL0運行。在此實例中,特權模式是階層式的,因為以特權模式EL2執行之軟體具有以特權模式EL1執行之軟體的全部特權,而以特權模式EL1執行之軟體則具有以特權模式EL0執行之軟體的全部特權。超管理器以最高特權等級(EL2)運行,而應用程式以最低特權等級(EL0)運行。因此,超管理器特權模式可符合在除錯狀態期間禁止處理電路系統105進入之預定特權模式。其他特權模式排列(例如彼等無階層特權模式)亦是可能的。
第2圖圖示超管理器模式除錯賦能信號HIDEN之效應,該賦能信號HIDEN是一控制參數實例。在第2圖之實例中,除錯賦能信號DBGEN控制是否允許進入除錯狀態。信號HIDEN進一步控制是否允許在除錯之同時在預定特權模式(包括超管理器及主機應用程式執行時所處於之模式)中執行。換言之,當斷定HIDEN(等於1)時,允許在處理電路系統執行超管理器或在超管理器下直接執行之關聯主機應用程式的同時進行除錯。若否定HIDEN(等於0),則不允許在處理電路系統執行超管理器或主機應用程式之同時進行除錯。此舉部 分地藉由在處於除錯狀態時阻止處理電路系統將其特權模式變更至可執行超管理器或主機應用程式之模式而實現,且亦藉由在處理電路系統處於其可執行超管理器或主機應用程式之特權模式中之同時阻止處理電路系統獲得除錯狀態而實現。只要斷定DBGEN(等於1),則允許其他應用程式及任何客作業系統進行除錯,無論HIDEN具有何值,亦即無論控制參數是否具有預定值。當否定DBGEN(等於0)時,不允許在任何特權等級進行除錯。
第3圖圖示一流程圖200,該圖指示依據一個實施例的在處理電路系統105處於除錯狀態中時接收異常並回應於異常之過程。
過程始於步驟S205,在該步驟中,接收到異常。在步驟S210中,判定異常是否對應於第二階段故障。若異常不對應第二階段故障,則在步驟S215中,判定是否應以特權模式EL2處理該異常。若為否,則過程前進至步驟S220,在該步驟中,以特權模式EL1處理異常。換言之,若沒有變更應發生異常之等級之原因,則產生此情境,且異常將通常以特權模式EL1發生。
或者,若在步驟S215中判定應以特權模式EL2處理異常,則在步驟S225中,判定是否允許在處於超管理器執行模式下時執行除錯指令。若允許該種執行(亦即HIDEN=1),則過程前進至步驟S230,在該步驟中,以特權模式EL2處理異常。換言之,若異常將以特 權模式EL2處理,且若允許以特權模式EL2執行,則實際上以特權模式EL2處理異常。
或者,若在步驟S225中,處於EL2中之同時不允許執行除錯指令(亦即HIDEN=0),則在步驟S220中,以特權模式EL1處理異常。換言之,若異常並非第二階段故障,且應以特權模式EL2處理異常,但該種執行未經允許,則將異常重新安排發送至特權模式EL1。
儘管如此,若在步驟S210中判定異常是第二階段故障,則過程前進至步驟S235,在該步驟中判定是否允許在處於超管理器執行模式中時執行除錯指令。若可在超管理器模式中執行除錯指令(亦即HIDEN=1),則過程前進至步驟S230,在該步驟中,在特權模式EL2中處理異常,該異常亦即第二階段故障。換言之,若產生第二階段故障,且若在超管理器執行模式下允許進行除錯,則在特權模式EL2中處理異常。
或者,若不允許在超管理器特權模式EL2中執行除錯指令(亦即HIDEN=0),則在步驟S240中儲存關於第二階段故障之資訊,且在步驟S220中,藉由在特權模式EL1中產生新的異常而在特權模式EL1中處理異常。
由此,可理解,當處於除錯狀態中時,如何基於異常類型(特定而言該異常是否為第二階段故障)、意欲處理異常之特權模式,及是否允許超管理器除錯(例如HIDEN值)來判定處理特定異常之特權模式。
第4圖圖示一流程圖300,該圖指示根據一個實施例如何接收並回應於變更特權模式之請求。
過程始於步驟S305,在該步驟中,變更特權模式之請求由處理電路系統105接收到(例如藉由處理電路系統105所執行之指令或藉由傳訊電路系統155所接收到之外部中斷信號來觸發)。在步驟S310中,判定處理電路系統105是否處於除錯狀態中。若處理電路系統105並非處於除錯狀態,則在步驟S320中,依據接收到之請求變更特權模式。此舉之原因在於若不處於除錯狀態,則尚未產生在預定特權模式中同時發生除錯與執行之情境。
或者,若處理電路系統105處於除錯狀態,則在步驟S315中,考慮HIDEN之值。若HIDEN等於1,則指示在超管理器執行模式中並未禁止除錯指令之執行,然後在步驟S320中,將特權模式變更為所請求之特權模式。
或者,若在超管理器特權模式中去能除錯(亦即HIDEN是0),則在步驟S325中,判定所請求之特權模式是否為EL2。若所請求之特權模式是EL2,則在步驟S330中,拒絕該請求。換言之,若在特權模式EL2中不允許執行除錯指令,且若所請求之特權模式是EL2,且若處理電路系統105已處於除錯狀態中,則忽視該請求即可。
或者,若在步驟S325中判定特權模式並非EL2,則在步驟S340中判定所請求之特權模式是否為EL1。若所請求之特權模式是EL1,則特權模式在步驟S345中變更為EL1。換言之,即使超管理器特權模式之除錯被去能(HIDEN=0),則在所請求之特權模式是EL1(亦即客作業系統模式)的情況下,將特權模式變更為EL1是可接受的。
或者,若在步驟S340中判定所請求之特權模式並非EL1,則過程前進至步驟S350。在第4圖中圖示之實施例的步驟S350中,暗示所請求之模式是EL0。同樣,因為用於在EL0中變更為主機應用程式之請求通常來自位於EL2之超管理器,且處理器在處於除錯狀態中時不能處於超管理器異常等級EL2,因此意謂著該請求並非相對於主機應用程式,因此在步驟S355中特權模式變更為EL0。
或者,若主機應用程式在步驟S350中執行,則在步驟S330中,拒絕變更特權模式之請求。換言之,若超管理器特權模式中之除錯被去能(亦即HIDEN=0),則不允許對主機應用程式進行除錯。此舉是因為沒有用於處理由於處理除錯指令而可發生的異常之機制,且直接在超管理器下運行之主機應用程式之進一步除錯可被視為不安全的。
第5圖圖示一流程圖400,該圖指示根據一個實施例如何接收並回應於進入除錯狀態之請求。
過程始於步驟S405,在該步驟中,除錯狀態請求(該請求可為經由除錯介面115傳遞之指令,或另一信號)由處理電路系統105接收到。在步驟S410中,考慮HIDEN值。若HIDEN等於1,則指示在超管理器執行模式中並未禁止除錯指令之執行,然後在步驟S415中,處理電路系統105根據接收到之請求進入除錯狀態。
或者,若在超管理器特權模式中去能除錯(亦即HIDEN是0),則在步驟S420中,判定當前之特權模式(亦即執行模式)是否為EL2。若當前的特權模式是EL2,則在步驟S425中,拒絕請求,且處理電路系統105未獲得除錯狀態。換言之,若在特權模式EL2中不允許執行除錯指令,且若當前之特權模式是EL2,則阻止處理電路系統進入除錯狀態。
或者,若在步驟S420中判定當前的特權模式並非EL2,則在步驟S430中判定當前之特權模式是否為EL1。若當前的特權模式是EL1,則在步驟S435中進入除錯狀態。換言之,即使超管理器特權模式之除錯被去能(HIDEN=0),則在當前之特權模式是EL1(亦即客作業系統模式)的情況下,進入除錯狀態是可接受的。
或者,若在步驟S430中判定當前特權模式並非EL1,則過程前進至步驟S440。在第4圖中圖示之實施例的步驟S440中,暗示當前的特權模式是EL0。因此,在步驟S440中,判定主機應用程式當前是否在處理 電路系統105上執行。若為否,則在步驟S445中,處理電路系統105獲得除錯狀態。
或者,若主機應用程式在步驟S440中執行,則在步驟S425中,拒絕進入除錯狀態之請求。換言之,若超管理器特權模式之除錯被去能,則不允許對主機應用程式進行除錯。此因為沒有用於處理由於處理除錯指令而可發生的異常之機制,且直接在超管理器下運行之主機應用程式之進一步除錯可被視為不安全的。
在本申請案中,用語「經配置以(configured to...)」用以意謂著裝置元件具有一配置,該配置能夠執行所定義之操作。在此上下文中,「配置(configuration)」意謂著硬體或軟體互連之排列或方式。例如,該裝置可具有提供所定義之操作的專用硬體,或處理器或其他處理裝置可經程式化以執行該功能。「經配置以(“configured to...)」不暗示需要以任何方式變更裝置元件以便提供定義之操作。
儘管本發明之說明性實施例已在本案中藉由參考附圖進行詳細描述,但將理解,本發明並非限定於彼等精確實施例,且熟習該項技術者在不背離本發明範疇及精神之情況下可在彼等實施例中實現多種變更及修改,如所附之申請專利範圍所定義。

Claims (17)

  1. 一種用於除錯的資料處理裝置,包括:一除錯介面,用以接收來自一除錯器之指令;一處理電路系統,用以在一除錯狀態中執行從該除錯介面接收到之指令;一控制電路系統,若一控制參數具有一預定值,則該控制電路系統用以在處於該除錯狀態之同時禁止以一預定特權模式執行指令;及一傳訊電路系統,用以在處於該除錯狀態中且該控制參數具有該預定值之同時回應於正在被傳訊且將以該預定特權模式處理之一第一異常,傳訊將以一不同特權模式處理之一第二異常,且設定辨識該第一異常類型之資訊。
  2. 如請求項1所述之裝置,其中,若該控制參數具有該預定值且若該處理電路系統處於該除錯狀態,則該控制電路系統禁止該處理電路系統變更至該預定特權模式。
  3. 如請求項1所述之裝置,其中,若該控制參數具有該預定值且若該處理電路系統處於該預定特權模式,則該控制電路系統禁止該處理電路系統進入該除錯狀態。
  4. 如請求項1所述之裝置,其中該預定特權模式具有一特權等級,該特權等級高於該不同特權模式。
  5. 如請求項1所述之裝置,包括:一狀態暫存器,用以儲存辨識該第一異常類型之該資訊,其中該狀態暫存器可由該除錯介面存取。
  6. 如請求項1所述之裝置,其中辨識該第一異常的類型之該資訊包括一值,該值對應於在該除錯狀態下不能發送之一異常。
  7. 如請求項6所述之裝置,其中辨識該第一異常的該類型之該資訊包括回應於一除錯事件而產生之一除錯異常之一識別碼。
  8. 如請求項1所述之裝置,其中該第一異常與一記憶體故障有關。
  9. 如請求項1所述之裝置,其中該第一異常與一記憶體轉換故障有關。
  10. 如請求項1所述之裝置,其中該第一異常是由於在已執行從一虛擬位址向一中間位址之一第一轉換之後,又嘗試自該中間位址向一實體位址執行一第二轉換而產生。
  11. 如請求項10所述之裝置,進一步包括:一第一記憶體管理單元,用以執行該第一轉換,該第一轉換基於由該處理電路系統回應於以低於該預定特權模式之一特權模式執行的一軟體而設定之一第一配置資料;及一第二記憶體管理單元,用以執行該第二轉換,該第二轉換基於由該處理電路系統回應於以該預定特權模式執行之一軟體而設定之一第二配置資料。
  12. 如請求項1所述之裝置,其中該預定特權模式可為一超管理器特權模式;及其中該不同特權模式可為一客作業系統特權模式。
  13. 如請求項1所述之裝置,其中該預定特權模式包括一超管理器特權模式及用於以該超管理器特權模式直接執行之軟體下執行應用程式之一模式;及其中該不同特權模式為一客作業系統特權模式。
  14. 如請求項12所述之裝置,其中,若該處理電路系統處於該除錯狀態且該控制參數不具有該預定值,則該控制電路系統將允許該處理電路系統進入該預定特權模式。
  15. 如請求項1所述之裝置,其中,在該處理電路系統處於該除錯狀態且該控制參數不具有該預定值之情況下,回應於正在被傳訊之將以該預定特權模式處理之一第三異常,該傳訊電路系統傳訊將以該不同特權模式處理之一第四異常,且不設定辨識該第三異常的該類型之資訊。
  16. 一種用於操作具有一除錯狀態的一處理電路系統,以用於執行自一除錯介面接收到之指令的方法,其中,若一控制參數具有一預定值,則該處理電路系統被禁止在處於該除錯狀態中的同時以一預定特權模式執行指令,該方法包括以下步驟:接收一信號,該信號指示將以該預定特權模式處理之一第一異常已產生;若在該處理電路系統處於該除錯狀態中且該控制參數具有該預定值之情況下接收到指示該第一異常已產生之該信號,則傳訊將以一不同特權模式處理之一第二異常;及設定辨識該第一異常類型之資訊。
  17. 一種用於除錯的資料處理裝置,包括:一除錯介面手段,用於接收來自一除錯器手段之指令;一處理手段,用於在一除錯狀態中執行從該除錯介面手段接收到之指令;一控制手段,若一控制參數具有一預定值,則該控制手段用於在處於該除錯狀態之同時禁止以一預定特權模式執行指令;及一傳訊手段,用於在處於該除錯狀態中且該控制參數具有該預定值之同時回應於正在被傳訊且將以該預定特權模式處理之一第一異常,傳訊將以一不同特權模式處理之一第二異常,且設定辨識該第一異常類型之資訊。
TW104123919A 2014-09-10 2015-07-23 在資料處理裝置中進行除錯 TWI678615B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1416010.5A GB2530050B (en) 2014-09-10 2014-09-10 Debugging in a data processing apparatus
GB1416010.5 2014-09-10

Publications (2)

Publication Number Publication Date
TW201610672A TW201610672A (zh) 2016-03-16
TWI678615B true TWI678615B (zh) 2019-12-01

Family

ID=51796483

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104123919A TWI678615B (zh) 2014-09-10 2015-07-23 在資料處理裝置中進行除錯

Country Status (6)

Country Link
US (1) US9652348B2 (zh)
EP (1) EP2996043B1 (zh)
KR (1) KR102376583B1 (zh)
CN (1) CN105404559B (zh)
GB (1) GB2530050B (zh)
TW (1) TWI678615B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11328054B2 (en) * 2018-12-21 2022-05-10 Netiq Corporation Preventing access to single sign on credentials associated with executing applications
US11010280B1 (en) * 2019-03-13 2021-05-18 Parallels International Gmbh System and method for virtualization-assisted debugging
US11734457B2 (en) * 2019-12-23 2023-08-22 Intel Corporation Technology for controlling access to processor debug features
US11704253B2 (en) * 2021-02-17 2023-07-18 Microsoft Technology Licensing, Llc Performing speculative address translation in processor-based devices
CN112965438B (zh) * 2021-02-20 2022-05-03 武汉卓尔信息科技有限公司 一种工业流程控制管理方法及装置
CN117272412B (zh) * 2023-11-21 2024-03-15 芯来智融半导体科技(上海)有限公司 中断控制寄存器保护方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260910A1 (en) * 2002-11-18 2004-12-23 Arm Limited Monitoring control for multi-domain processors
TW201214104A (en) * 2010-09-24 2012-04-01 Advanced Risc Mach Ltd Debugging of a data processing apparatus
TW201224740A (en) * 2010-09-24 2012-06-16 Advanced Risc Mach Ltd Debugging of a data processing apparatus (2)
TW201234175A (en) * 2011-01-28 2012-08-16 Advanced Risc Mach Ltd Controlling generation of debug exceptions

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4525780A (en) * 1981-05-22 1985-06-25 Data General Corporation Data processing system having a memory using object-based information and a protection scheme for determining access rights to such information
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US5704034A (en) * 1995-08-30 1997-12-30 Motorola, Inc. Method and circuit for initializing a data processing system
US5737516A (en) * 1995-08-30 1998-04-07 Motorola, Inc. Data processing system for performing a debug function and method therefor
US5828824A (en) * 1996-12-16 1998-10-27 Texas Instruments Incorporated Method for debugging an integrated circuit using extended operating modes
US6065106A (en) * 1996-12-20 2000-05-16 Texas Instruments Incorporated Resuming normal execution by restoring without refetching instructions in multi-word instruction register interrupted by debug instructions loading and processing
GB2329049B (en) * 1997-09-09 2002-09-11 Advanced Risc Mach Ltd Apparatus and method for identifying exceptions when debugging software
US6557116B1 (en) * 1999-02-19 2003-04-29 Texas Instruments Incorporated Emulation suspension mode with frame controlled resource access
US6757846B1 (en) * 2000-11-06 2004-06-29 Xilinx, Inc. Method and apparatus for multi-bus breakpoint stepping
US6751751B1 (en) * 2000-11-06 2004-06-15 Xilinx, Inc. Universal multi-bus breakpoint unit for a configurable system-on-chip
US6691251B2 (en) * 2000-11-30 2004-02-10 Palmsource, Inc. On-chip debugging system emulator
US7093236B2 (en) * 2001-02-01 2006-08-15 Arm Limited Tracing out-of-order data
US6931631B2 (en) * 2001-06-27 2005-08-16 International Business Machines Corporation Low impact breakpoint for multi-user debugging
US7383587B2 (en) * 2002-11-18 2008-06-03 Arm Limited Exception handling control in a secure processing system
WO2004046925A1 (en) * 2002-11-18 2004-06-03 Arm Limited Security mode switching via an exception vector
KR100941104B1 (ko) * 2002-11-18 2010-02-10 에이알엠 리미티드 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
US7117284B2 (en) * 2002-11-18 2006-10-03 Arm Limited Vectored interrupt control within a system having a secure domain and a non-secure domain
US7127639B2 (en) * 2002-11-22 2006-10-24 Texas Instruments Incorporated Distinguishing between two classes of trace information
US6981178B2 (en) * 2002-11-22 2005-12-27 Texas Instruments Incorporated Separation of debug windows by IDS bit
US7302690B2 (en) * 2003-07-31 2007-11-27 International Business Machines Corporation Method and apparatus for transparently sharing an exception vector between firmware and an operating system
US7814308B2 (en) * 2004-08-27 2010-10-12 Microsoft Corporation Debugging applications under different permissions
US7487341B2 (en) * 2006-06-29 2009-02-03 Intel Corporation Handling address translations and exceptions of a heterogeneous resource of a processor using another processor resource
JP2008090390A (ja) * 2006-09-29 2008-04-17 Matsushita Electric Ind Co Ltd マイコンデバッグシステムおよびマイクロコンピュータ
EP2075696A3 (en) * 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
US7730248B2 (en) * 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
US7984352B2 (en) * 2008-10-06 2011-07-19 Texas Instruments Incorporated Saving debugging contexts with periodic built-in self-test execution
US8856742B2 (en) 2010-06-11 2014-10-07 International Business Machines Corporation Distributed debugging
GB2482701C (en) * 2010-08-11 2018-12-26 Advanced Risc Mach Ltd Illegal mode change handling
US9336122B2 (en) * 2012-05-07 2016-05-10 Microchip Technology Incorporated Device having configurable breakpoint based on interrupt status
US9471411B2 (en) * 2013-01-23 2016-10-18 International Business Machines Corporation Monitoring and capturing early diagnostic data
US10061940B2 (en) * 2013-07-09 2018-08-28 Andes Technology Corporation Secure protection processor and method including comparing an instruction security attribute of an instruction and a security attribute of an operational event
US9740644B2 (en) * 2014-09-26 2017-08-22 Intel Corporation Avoiding premature enabling of nonmaskable interrupts when returning from exceptions
US9612939B2 (en) * 2014-10-29 2017-04-04 Microsoft Technology Licensing, Llc. Diagnostic workflow for production debugging

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260910A1 (en) * 2002-11-18 2004-12-23 Arm Limited Monitoring control for multi-domain processors
TW201214104A (en) * 2010-09-24 2012-04-01 Advanced Risc Mach Ltd Debugging of a data processing apparatus
TW201224740A (en) * 2010-09-24 2012-06-16 Advanced Risc Mach Ltd Debugging of a data processing apparatus (2)
TW201234175A (en) * 2011-01-28 2012-08-16 Advanced Risc Mach Ltd Controlling generation of debug exceptions

Also Published As

Publication number Publication date
US9652348B2 (en) 2017-05-16
TW201610672A (zh) 2016-03-16
KR102376583B1 (ko) 2022-03-21
KR20160030440A (ko) 2016-03-18
EP2996043B1 (en) 2022-02-23
EP2996043A1 (en) 2016-03-16
GB2530050B (en) 2021-07-21
CN105404559B (zh) 2020-07-07
GB201416010D0 (en) 2014-10-22
CN105404559A (zh) 2016-03-16
GB2530050A (en) 2016-03-16
US20160070630A1 (en) 2016-03-10

Similar Documents

Publication Publication Date Title
TWI678615B (zh) 在資料處理裝置中進行除錯
TWI655643B (zh) 用於辨識對應目標記憶體位址之記憶體屬性單元之區域之區域辨識操作
US8332660B2 (en) Providing secure services to a non-secure application
US9703957B2 (en) Atomic detection and repair of kernel memory
KR102206115B1 (ko) 인터프리터 가상 머신을 이용한 행동 멀웨어 탐지
JP6481900B2 (ja) ハードウェア構成レポーティング用の装置、ハードウェア構成アービトレーションの方法、プログラム、機械可読記録媒体、及び、ハードウェア構成アービトレーション用の装置
KR102192835B1 (ko) 데이터 처리장치에서의 소프트웨어 라이브러리들의 보안 보호
JP6984710B2 (ja) コンピュータ装置およびメモリ管理方法
TWI667588B (zh) 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體(二)
JP2013250980A (ja) プロセッサ資源および実行保護の方法および装置
JP6370098B2 (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US10229077B2 (en) Method for data transfer between real-time tasks using a DMA memory controller
US9536084B1 (en) Systems and methods for delivering event-filtered introspection notifications
TW202029045A (zh) 驗證堆疊指標
TW202129491A (zh) 域轉換禁用配置參數
US8661177B2 (en) Method and apparatus for controlling system interrupts
KR20200013049A (ko) 명령 세트의 변경을 제어하는 장치 및 방법
JP2015166952A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US20180260563A1 (en) Computer system for executing analysis program, and method of monitoring execution of analysis program
US12007936B2 (en) Power efficient memory value updates for arm architectures
CN109190383B (zh) 访问指令的处理方法、装置及设备
TW202143030A (zh) 模式間的調用分支指令
JP2018174001A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
JP2005309613A (ja) 不正アクセス検出装置、不正アクセス検出方法、プログラム