[發明專利]一種基于配對資源管理函數的自適應挖掘和分析方法有效
| 申請號: | 201410150754.5 | 申請日: | 2014-04-15 |
| 公開(公告)號: | CN103942145A | 公開(公告)日: | 2014-07-23 |
| 發明(設計)人: | 胡事民;劉虎球 | 申請(專利權)人: | 清華大學 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京路浩知識產權代理有限公司 11002 | 代理人: | 李迪 |
| 地址: | 100084 北京市海*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 配對 資源管理 函數 自適應 挖掘 分析 方法 | ||
技術領域
本發明涉及計算機領域,具體涉及一種基于配對資源管理函數的自適應挖掘和分析方法。
背景技術
在計算機大型軟件系統中,存在大量的函數使用規則,其中一大類即為兩個函數針對同一資源執行相反的功能,在本方法中,稱之為配對函數。由于大型軟件文檔的缺失,分工開發的人員眾多等原因,使得該類軟件中存在大量的違例和配對函數的使用相關。
配對函數作用在同一類資源上,并執行相關的功能,一般是接口提供者已經實現,一對配對函數中,一個完成資源的申請,另一個完成資源的釋放,但是使用者僅關心功能的實現,可能對接口使用和規范不熟練,在異常處理中,對申請的資源沒有及時釋放,從而造成內核泄露、死鎖等問題。
發明內容
(一)解決的技術問題
針對現有技術的不足,本發明提供一種基于配對資源管理函數的自適應挖掘和分析方法,能夠自動從源碼中挖掘配對函數,并根據配對函數對源碼進行檢測。
(二)技術方案
為了達到以上目的,本發明通過以下技術方案予以實現:
一種基于配對資源管理函數的自適應挖掘和分析方法,該方法包括:
S1:分離出源碼使用接口函數;
S2:根據控制流信息對接口函數按照正常執行和異常處理路徑進行歸類;
S3:統計正常執行和異常處理路徑中接口函數成對出現的頻度;
S4:根據所設定閾值過濾低頻次不可信的配對函數;
S5:根據配對函數檢測源碼中的使用違例。
優選地,所述源碼使用接口函數包括:大型操作系統軟件中提供給驅動程序使用的內核擴展函數接口,以及大型軟件分層設計實現中為上層提供的資源管理接口。
優選地,步驟S2具體包括:根據函數返回值進行錯誤判定,發生錯誤時,調用的函數均為異常處理路徑中的函數,而執行成功的函數則處于正常執行路徑中。
優選地,步驟S3具體包括:對于正常執行路徑和異常處理路徑中的任意兩個函數,若其函數參數存在關聯性,統計成對出現的次數。
優選地,步驟S4具體包括:根據所設定的閾值對成對的函數進行過濾,低于或等于所設定閾值的函數被忽略,高于所設定閾值的函數被保留,并判定為配對函數。
優選地,步驟S5具體包括:根據挖掘和統計分析后所得的配對函數,對源碼中的執行路徑進行掃描,若正常路徑中調用了配對函數之一,則檢查在執行路徑上的異常處理路徑是否調用了對應的配對的另一個函數。
優選地,所述根據函數返回值進行錯誤判定,具體包括:若調用的接口函數返回相關的錯誤或者讀取到輸入的異常數據,則中斷后續的執行。
優選地,所述參數存在關聯性,具體包括:當兩個函數作用于同一具體資源上時,兩個函數參數和返回值存在關聯性;在規范命名的大型軟件中,兩者函數名字存在關聯性。
優選地,所述所設定的閾值具體包括頻度參數、系統默認值以及根據統計結果計算的平均值。
優選地,任一所述配對函數包含兩個函數,其中一個在正常執行路徑中,另一個出現在與之對應的異常處理路徑中,且兩者執行相反的功能或操作。
優選地,所述輸入的異常數據具體包括:外部環境、硬件或用戶輸入的異常數據,或者輸入的數據進行運算后產生的異常數據。
(三)有益效果
本發明至少有如下有益效果:
本發明提供了一種基于配對資源管理函數的自適應挖掘和分析方法,能夠自動地挖掘接口函數中的配對函數,并對源碼進行規范檢查,因此對接口函數的使用規范有著重要意義。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些圖獲得其他的附圖。
圖1為本發明實施例的一種基于配對資源管理函數的自適應挖掘和分析方法的流程圖;
圖2為本發明實施例的一個具體的挖掘和分析源碼示意圖。
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
實施例1:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于清華大學,未經清華大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410150754.5/2.html,轉載請聲明來源鉆瓜專利網。





