[發明專利]基于內核的雙重錯誤調試方法及系統有效
| 申請號: | 201210591385.4 | 申請日: | 2012-12-31 |
| 公開(公告)號: | CN103019877A | 公開(公告)日: | 2013-04-03 |
| 發明(設計)人: | 王瑀屏;郭旭峰 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F11/07 | 分類號: | G06F11/07 |
| 代理公司: | 北京清亦華知識產權代理事務所(普通合伙) 11201 | 代理人: | 張大威 |
| 地址: | 100084 北京*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 內核 雙重 錯誤 調試 方法 系統 | ||
技術領域
本發明涉及計算機及電子信息技術領域,特別涉及一種基于內核的雙重錯誤調試方法及系統。
背景技術
雙重錯誤是處理器異常的一種,具體是指在處理器異常處理例程中又檢測到發生了另外的異常。通常情況下,處理器會順序處理這兩個異常,但是這兩個異常不能順序處理時,處理器就會產生“雙重錯誤”。
處理器檢測到中斷或異常時一般有兩種處理方式。一種是通過中斷門或陷阱門跳轉到中斷處理例程進行處理;另一種是通過任務門切換到另一個任務(稱為“異常處理任務”)進行處理。對于前一種方法需要將當前任務的狀態進行壓棧,不進行任務切換;對于后一種方法需要進行任務切換,但不會影響前一個任務的內核棧。雙重錯誤是比較嚴重的一種異常,具體是指在處理器異常處理例程中又檢測到發生了另外的異常。通常情況下處理器會順序處理這兩個異常。但是,當這兩個異常不能順序處理時,處理器就會產生“雙重錯誤”。一個任務在發生雙重錯誤后,有可能會導致出錯任務的內核棧溢出,不能進行壓棧,因此通常采用切換任務的方法進行處理。
在Linux內核中,當發生雙重錯誤時,異常處理任務僅僅打印各個寄存器信息,對于出錯任務的內核棧信息并沒有輸出,這對于精確定位出錯任務的問題帶來一定困難。
發明內容
本發明的目的旨在至少解決上述的技術缺陷之一。
為達到上述目的,本發明一方面的實施例提出一種基于內核的雙重錯誤調試方法,包括以下步驟:S1:對用戶的任務進行處理;S2:檢測到對所述用戶任務進行處理的過程中發生雙重錯誤;S3:通過任務門從所述用戶任務中切換到異常處理任務中并對所述雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態;S4:根據所述運行狀態對內核進行調試。
根據本發明實施例的方法,通過異常處理任務獲得出現雙重錯誤時的運行狀態,并對雙重任務的內核進行調試處理,提高了系統的可靠性。
本發明的一個實施例中,所述步驟S3具體包括:S31:所述異常處理任務將用戶任務的頁表中添加映射使內核訪問所述用戶任務內核棧;以及S32:根據所述用戶任務內核棧獲得出現雙重錯誤時的運行狀態。
本發明的一個實施例中,所述用戶任務和所述異常處理任務包括頁表和內核棧。
為達到上述目的,本發明的實施例另一方面提出一種基于內核的雙重錯誤調試系統,包括:第一處理模塊,用于對用戶的任務進行處理;檢測模塊,用于檢測到對所述用戶任務進行處理的過程中發生雙重錯誤;第二處理模塊,用于通過任務門從所述用戶任務中切換到異常處理任務中并對所述雙重錯誤進行處理獲得出現雙重錯誤時的運行狀態;以及調試模塊,用于根據所述運行狀態對內核進行調試。
根據本發明實施例的系統,通過異常處理任務獲得出現雙重錯誤時的運行狀態,并對雙重任務的內核進行調試處理,提高了系統的可靠性。
本發明的一個實施例中,所述第二處理模塊具體包括:映射單元,用于所述異常處理任務將用戶任務的頁表中添加映射使內核訪問所述用戶任務內核棧;以及獲取單元,用于根據所述用戶任務內核棧獲得出現雙重錯誤時的運行狀態。
本發明的一個實施例中,所述用戶任務和所述異常處理任務包括頁表和內核棧。
本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
附圖說明
本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:
圖1為根據本發明一個實施例的基于內核的雙重錯誤調試方法的流程圖;
圖2為根據本發明一個實施例的基于內核的雙重錯誤調試方法的處理過程示意圖;以及
圖3為根據本發明一個實施例的基于內核的雙重錯誤調試系統的框架圖。
具體實施方式
下面詳細描述本發明的實施例,實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發明,而不能解釋為對本發明的限制。
在本發明的描述中,需要理解的是,術語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特征的數量。由此,限定有“第一”、“第二”的特征可以明示或者隱含地包括一個或者更多個該特征。
圖1為根據本發明一個實施例的基于內核的雙重錯誤調試方法的流程圖。圖2為根據本發明一個實施例的基于內核的雙重錯誤調試方法的處理過程示意圖。如圖1和圖2所示,根據本發明實施例的基于內核的雙重錯誤調試方法,包括以下步驟:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210591385.4/2.html,轉載請聲明來源鉆瓜專利網。





