本發明專利技術提出一種基于內核的雙重錯誤調試方法及系統。其中,方法包括以下步驟:對用戶的任務進行處理;檢測到對用戶任務進行處理的過程中發生雙重錯誤;通過任務門從用戶任務中切換到異常處理任務中并對雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態;根據運行狀態對內核進行調試。根據本發明專利技術實施例的方法,通過異常處理任務獲得出現雙重錯誤時的運行狀態,并對雙重任務的內核進行調試處理,提高了系統的可靠性。
【技術實現步驟摘要】
本專利技術涉及計算機及電子信息
,特別涉及一種基于內核的雙重錯誤調試方法及系統。
技術介紹
雙重錯誤是處理器異常的一種,具體是指在處理器異常處理例程中又檢測到發生了另外的異常。通常情況下,處理器會順序處理這兩個異常,但是這兩個異常不能順序處理時,處理器就會產生“雙重錯誤”。處理器檢測到中斷或異常時一般有兩種處理方式。一種是通過中斷門或陷阱門跳轉到中斷處理例程進行處理;另一種是通過任務門切換到另一個任務(稱為“異常處理任務”)進行處理。對于前一種方法需要將當前任務的狀態進行壓棧,不進行任務切換;對于后一種方法需要進行任務切換,但不會影響前一個任務的內核棧。雙重錯誤是比較嚴重的一種異常,具體是指在處理器異常處理例程中又檢測到發生了另外的異常。通常情況下處理器會順序處理這兩個異常。但是,當這兩個異常不能順序處理時,處理器就會產生“雙重錯誤”。一個任務在發生雙重錯誤后,有可能會導致出錯任務的內核棧溢出,不能進行壓棧,因此通常采用切換任務的方法進行處理。在Linux內核中,當發生雙重錯誤時,異常處理任務僅僅打印各個寄存器信息,對于出錯任務的內核棧信息并沒有輸出,這對于精確定位出錯任務的問題帶來一定困難。
技術實現思路
本專利技術的目的旨在至少解決上述的技術缺陷之一。為達到上述目的,本專利技術一方面的實施例提出一種基于內核的雙重錯誤調試方法,包括以下步驟s1:對用戶的任務進行處理;S2 :檢測到對所述用戶任務進行處理的過程中發生雙重錯誤;S3 :通過任務門從所述用戶任務中切換到異常處理任務中并對所述雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態;S4 :根據所述運行狀態對內核進行調試。根據本專利技術實施例的方法,通過異常處理任務獲得出現雙重錯誤時的運行狀態,并對雙重任務的內核進行調試處理,提高了系統的可靠性。本專利技術的一個實施例中,所述步驟S3具體包括S31 :所述異常處理任務將用戶任務的頁表中添加映射使內核訪問所述用戶任務內核棧;以及S32 :根據所述用戶任務內核棧獲得出現雙重錯誤時的運行狀態。本專利技術的一個實施例中,所述用戶任務和所述異常處理任務包括頁表和內核棧。為達到上述目的,本專利技術的實施例另一方面提出一種基于內核的雙重錯誤調試系統,包括第一處理模塊,用于對用戶的任務進行處理;檢測模塊,用于檢測到對所述用戶任務進行處理的過程中發生雙重錯誤;第二處理模塊,用于通過任務門從所述用戶任務中切換到異常處理任務中并對所述雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態;以及調試模塊,用于根據所述運行狀態對內核進行調試。根據本專利技術實施例的系統,通過異常處理任務獲得出現雙重錯誤時的運行狀態,并對雙重任務的內核進行調試處理,提高了系統的可靠性。本專利技術的一個實施例中,所述第二處理模塊具體包括映射単元,用于所述異常處理任務將用戶任務的頁表中添加映射使內核訪問所述用戶任務內核棧;以及獲取単元,用于根據所述用戶任務內核棧獲得出現雙重錯誤時的運行狀態。本專利技術的一個實施例中,所述用戶任務和所述異常處理任務包括頁表和內核棧。本專利技術附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本專利技術的實踐了解到。附圖說明本專利技術上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中圖1為根據本專利技術ー個實施例的基于內核的雙重錯誤調試方法的流程圖;圖2為根據本專利技術ー個實施例的基于內核的雙重錯誤調試方法的處理過程示意圖;以及圖3為根據本專利技術ー個實施例的基于內核的雙重錯誤調試系統的框架圖。具體實施例方式下面詳細描述本專利技術的實施例,實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本專利技術,而不能解釋為對本專利技術的限制。在本專利技術的描述中,需要理解的是,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括ー個或者更多個該特征。圖1為根據本專利技術ー個實施例的基于內核的雙重錯誤調試方法的流程圖。圖2為根據本專利技術一個實施例的基于內核的雙重錯誤調試方法的處理過程示意圖。如圖1和圖2所示,根據本專利技術實施例的基于內核的雙重錯誤調試方法,包括以下步驟步驟S101,對用戶的任務進行處理。系統對用戶的行為以及用戶的指示對任務進行處理。步驟S102,檢測到對用戶任務進行處理的過程中發生雙重錯誤。具體地,在對用戶的各種任務進行處理的過程中通過異常或錯誤的特征檢測是否發雙重錯誤。步驟S103,通過任務門從用戶任務中切換到異常處理任務中并對雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態。具體地,首先跳轉到異常處理任務,將用戶任務的頁表中添加映射使內核訪問用戶任務內核棧。然后,根據用戶任務內核棧獲得出現雙重錯誤時的運行狀態。步驟S104,根據運行狀態對內核進行調試。具體地,根據運行狀態,井根據出錯的具體特性采用對應的方式進行調試來解決雙重錯誤。根據本專利技術實施例的基于內核的雙重錯誤調試方法,通過異常處理任務獲得出現雙重錯誤時的運行狀態,并對雙重任務的內核進行調試處理,提高了系統的可靠性。圖3為根據本專利技術一個實施例的基于內核的雙重錯誤調試系統的框架圖。如圖3所示,根據本專利技術實施例的基于內核的雙重錯誤調試系統包括第一處理模塊100、檢測模塊200、第二處理模塊300和調試模塊400。具體地,第一處理模塊100用于對用戶的任務進行處理。系統對用戶的行為以及用戶的指示對任務進行處理。檢測模塊200用于檢測到對用戶任務進行處理的過程中發生雙重錯誤。在對用戶的各種任務進行處理的過程中通過異常或錯誤的特征檢測是否發雙重錯誤。第二處理模塊300用于通過任務門從用戶任務中切換到異常處理任務中并對雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態。在本專利技術的一個實施例中,第二處理模塊300包括映射單元和獲取單元。映射單元用于異常處理任務將用戶任務的頁表中添加映射使內核訪問用戶任務內核棧。獲取單元用于根據用戶任務內核棧獲得出現雙重錯誤時的運行狀態。調試模塊400用于根據運行狀態對內核進行調試。根據運行狀態,并根據出錯的具體特性采用對應的方式進行調試來解決雙重錯誤。根據本專利技術實施例的基于內核的雙重錯誤調試系統,通過異常處理任務獲得出現雙重錯誤時的運行狀態,并對雙重任務的內核進行調試處理,提高了系統的可靠性。盡管上面已經示出和描述了本專利技術的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本專利技術的限制,本領域的普通技術人員在不脫離本專利技術的原理和宗旨的情況下在本專利技術的范圍內可以對上述實施例進行變化、修改、替換和變型。本文檔來自技高網...
【技術保護點】
一種基于內核的雙重錯誤調試方法,其特征在于,包括以下步驟:S1:對用戶的任務進行處理;S2:檢測到對所述用戶任務進行處理的過程中發生雙重錯誤;S3:通過任務門從所述用戶任務中切換到異常處理任務中并對所述雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態;S4:根據所述運行狀態對內核進行調試。
【技術特征摘要】
1.一種基于內核的雙重錯誤調試方法,其特征在于,包括以下步驟 S1:對用戶的任務進行處理; 52:檢測到對所述用戶任務進行處理的過程中發生雙重錯誤; 53:通過任務門從所述用戶任務中切換到異常處理任務中并對所述雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態; 54:根據所述運行狀態對內核進行調試。2.如權利要求1所述的基于內核的雙重錯誤調試方法,其特征在于,所述步驟S3具體包括 531:所述異常處理任務將用戶任務的頁表中添加映射使內核訪問所述用戶任務內核棧;以及 532:根據所述用戶任務內核棧獲得出現雙重錯誤時的運行狀態。3.如權利要求1或2所述的基于內核的雙重錯誤調試方法,其特征在于,所述用戶任務和所述異常處理任務包括頁表和內核棧。4.一種基于內核的...
【專利技術屬性】
技術研發人員:王瑀屏,郭旭峰,
申請(專利權)人:清華大學,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。