[發(fā)明專利]基于日志注入的驅動配置調試方法有效
| 申請?zhí)枺?/td> | 201310436227.6 | 申請日: | 2013-09-23 |
| 公開(公告)號: | CN103559121A | 公開(公告)日: | 2014-02-05 |
| 發(fā)明(設計)人: | 胡事民;劉虎球;白家駒;馬超 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京路浩知識產(chǎn)權代理有限公司 11002 | 代理人: | 李相雨 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 日志 注入 驅動 配置 調試 方法 | ||
技術領域
本發(fā)明涉及計算機安全防范技術領域,具體涉及一種基于日志注入的驅動配置調試方法。?
背景技術
在當前的通用操作系統(tǒng)中,驅動常常以模塊的形式加載到內(nèi)核中運行,并調用了大量的內(nèi)核擴展。在Linux中,驅動占據(jù)了操作系統(tǒng)70%的代碼,并且引起的錯誤是內(nèi)核代碼的3-7倍,在Windows中同樣有報告指出,85%的系統(tǒng)崩潰和驅動的錯誤相關。?
驅動以內(nèi)核擴展的形式運行,大都運行在內(nèi)核態(tài),因而驅動的可靠性對系統(tǒng)至關重要。但是由于驅動的開發(fā)常常和系統(tǒng)開發(fā)是分離的,因此內(nèi)核擴展功能發(fā)生的細微改變都可能引起驅動出現(xiàn)不穩(wěn)定性。另外,許多驅動開發(fā)者違反內(nèi)核擴展使用規(guī)范,當操作系統(tǒng)配置發(fā)生改變時,該種違例將無法提供正確的功能給驅動程序,可能引起設備不穩(wěn)定工作,甚至崩潰。?
設備本身同樣對系統(tǒng)的一些資源存在配置上的約束,以UHCI中的幀基址寄存器為例,從硬件手冊[UHCI?revision1.1section2.1.5]上可以看出寄存器對低12位要求對齊,在實際寫入時必須保證低12位為0,從而使得4KB對齊。?
驅動開發(fā)者在此處使用內(nèi)核擴展的內(nèi)存管理接口時,應注意使用alloc_page或alloc_pages擴展,如果使用kmalloc,則在內(nèi)存調試開啟尾對齊時將可能存在錯誤。另外,在USB的UHCI驅動,TD的緩沖區(qū)要求字節(jié)對齊,而QH(隊列頭)則要求16字節(jié)對齊。?
根據(jù)設備手冊要求,填入設備的DMA地址必須是物理內(nèi)存地址,不能使用內(nèi)核的線性地址。但是在部分系統(tǒng)實現(xiàn)機制中,內(nèi)核的1G以?內(nèi)線性地址和物理地址一致,因此當頁表擴充,配置表發(fā)生改變時,沒有轉換的線性內(nèi)存地址直接填入DMA將可能引起系統(tǒng)崩潰。?
由于程序員對自身的程序常常足夠自信,測試周期較短,而設備驅動的功能和正確性測試常常依賴于具體的硬件,測試周期短,測試場景偏少,僅僅關心功能實現(xiàn),而沒有過多考慮系統(tǒng)環(huán)境配置等相關的功能測試。?
因此,根據(jù)寄存器要求,靜態(tài)注入檢測鉤子,運行時動態(tài)檢測配置的參數(shù)是否滿足配置要求是非常有效的錯誤預防方法,并在出現(xiàn)時及時記錄相應的日志,便于開發(fā)者快速定位相關錯誤。?
綜上所述,一種基于日志注入的驅動配置調試方法是亟待提供的。?
發(fā)明內(nèi)容
(一)要解決的技術問題?
本發(fā)明要解決的技術問題是:如何提供一種基于日志注入的驅動配置調試方法,能夠根據(jù)配置文檔的要求,在驅動中插入檢查代碼,運行時動態(tài)檢查驅動配置中的配置參數(shù),出現(xiàn)錯誤時及時記錄并處理錯誤,從而提高驅動的可靠性。?
(二)技術方案?
為解決上述問題,本發(fā)明提供一種基于日志注入的驅動配置調試方法,包括:S1.提取驅動的設備寄存器的配置規(guī)范文檔;S2.按照所述配置規(guī)范文檔對驅動進行檢測鉤子注入;S3.在檢測鉤子位置添加相關類型的日志函數(shù);S4.運行修改后的驅動,運行時動態(tài)監(jiān)測驅動的運行。?
優(yōu)選地,所述步驟S4包括:當出現(xiàn)配置異常時,及時捕獲異常,并對部分錯誤進行自動處理,對不能處理的異常,將日志提交開發(fā)者。?
優(yōu)選地,所述步驟S1包括:根據(jù)驅動要求,對能夠控制設備的寄存器配置規(guī)范進行分析和提取,將寄存器的配置約束條件提取成規(guī)范的可以直接解析的結構化數(shù)據(jù)。?
優(yōu)選地,將寄存器的配置約束條件提取成規(guī)范的可以直接解析的?結構化數(shù)據(jù)包括:將設備手冊中的寄存器約束信息轉換為XML文檔規(guī)范信息,一個寄存器的配置信息對應一條XML記錄。?
優(yōu)選地,所述步驟S2包括:在驅動源碼中插入檢測點,在檢測點注入相應的源代碼,執(zhí)行配置參數(shù)檢查功能。?
優(yōu)選地,所述步驟S3包括:根據(jù)插入的檢測標記點,在檢測標記點通過對參數(shù)進行檢查,當發(fā)現(xiàn)參數(shù)不符合所述配置規(guī)范文檔中規(guī)定的配置要求時,將添加日志記錄代碼。?
優(yōu)選地,所述步驟S4包括:在系統(tǒng)的正常運行過程中,實現(xiàn)設備管理功能時,利用驅動對設備的寄存器進行初始化配置,動態(tài)運行時根據(jù)插入的檢測鉤子對配置參數(shù)進行檢查。?
優(yōu)選地,所述步驟S4包括:對寄存器進行配置時,若配置參數(shù)不滿足設備規(guī)格文檔中的要求,及時發(fā)現(xiàn)該類錯誤,并記錄相應的日志信息。?
優(yōu)選地,所述步驟S4包括:當定位到錯誤后,將錯誤進行處理,按照文檔中定義的錯誤的嚴重性,對于引起設備嚴重錯誤的情況記錄出錯信息后,直接返回錯誤給上層調用。?
(三)有益效果?
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經(jīng)清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310436227.6/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:LED線路板引腳焊錫槽排煙機構
- 下一篇:一種顯示進度條的方法及裝置





