[發明專利]一種用于軌跡跟蹤和覆蓋分析的選擇性動態二進制插樁方法在審
| 申請號: | 202210960803.6 | 申請日: | 2022-08-11 |
| 公開(公告)號: | CN116610554A | 公開(公告)日: | 2023-08-18 |
| 發明(設計)人: | 鄒偉;李春雷;鄧霏;胡馳;馬思友;楊萬生;仵林博;尚小虎;張浩 | 申請(專利權)人: | 中國工程物理研究院計算機應用研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 614000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 用于 軌跡 跟蹤 覆蓋 分析 選擇性 動態 二進制 方法 | ||
本發明實施例公開了一種用于軌跡跟蹤和覆蓋分析的選擇性動態二進制插樁方法,用于程序動態分析,該方法屬于計算機程序分析領域。本申請設計了一種樁點可選、無用樁點程序自動剔除的動態二進制插樁方法,有效的克服插樁輸出結果存儲和傳輸消耗大,目標程序執行速度顯著降低等不良影響。
技術領域
本發明涉及計算機軟件動態分析技術領域,具體涉及一種用于軌跡跟蹤和覆蓋分析的選擇性動態二進制插樁方法。
背景技術
軟件插樁是一項十分重要的軟件動態分析技術。通過軟件插樁技術可有效收集程序執行過程信息,如路徑覆蓋信息、函數調用關系信息,廣泛用于軟件性能分析、程序優化、測試覆蓋分析、軟件缺陷檢測與修復,可有效提高復雜嵌入式軟件的可靠性。但是,常用的軟件插樁方法通常是源代碼插樁。源代碼插樁需要修改被測軟件的源代碼并重新編譯鏈接生成目標碼,不但過程復雜,而且不可避免的改變被測軟件的運行流程,嚴重影響軟件的動態分析的準確性。而基于二進制動態翻譯執行的動態二進制分析雖然可以克服上述缺陷,但也帶來了新的缺陷:動態二進制插樁的粒度一般在翻譯基本塊TB(Translation?Block)的層次進行。現有翻譯基本塊的層次的插樁過程則是對每個翻譯基本塊不加選擇的插樁,做得最好的也就是在樁程序內在邏輯中附加執行檢測控制數據輸出。然而,在實際二進制程序目標碼中,大約有50%以上目標碼基本塊(Basic?Block)由編譯器生成或來自其它第三方庫中。然而,大多數時候用戶不需要對編譯器庫和第三方庫中程序分析,僅關心屬于自己業務范圍內的源程序運行問題。不加選擇的對所有的翻譯基本塊插樁,一方面造成了程序運行軌跡、覆蓋信息、函數調用信息中多出了數量龐大而不必要信息,不利于覆蓋軌跡信息的傳輸和存儲。另一方面在宿主程序中也生成了眾多的樁程序,樁程序的執行也嚴重影響了宿主程序執行的效率。若能夠找到一種方法不插樁編譯器生成的、鏈接的第三方庫或用戶不關心的程序部分,則能顯著提升動態二進制插樁的執行效率,降低傳輸帶寬和存儲空間。
針對上述問題,本文發明了一種用于軌跡跟蹤和覆蓋分析的選擇性動態二進制插樁方法,該方法同時采用自動和用戶選擇兩種方法不插樁用戶不關注的亞基本塊SBB,顯著改善插樁對仿真執行效率的不良影響,減少插樁輸出數據,從而減少對覆蓋和軌跡分析時間,具有很強的實用性。
發明內容
本發明實施例的目的在于提供一種用于軌跡跟蹤和覆蓋分析的選擇性動態二進制插樁方法。本發明依次包括如下內容:
分析待插樁目標二進制碼調試信息,自動標記不需要插樁的亞基本塊;
對不需要分析的文件、函數、語句塊或庫中需要插樁的亞基本塊進行人工標記;
目標機指令翻譯時,根據人工標記插樁,不插樁未人工標記的亞基本塊。
進一步的,所述分析待插樁目標二進制碼調試信息,自動標記不需要插樁的亞基本塊包括:
讀取待插樁程序的調試信息,逐一遍歷各編譯單元Line_Prog,生成亞基本塊信息八元組,SBBI:{DIR,?FILE,FUNC,LINE,COLUMN,PC_L,PC_H,?Flag},其中,DIR為該亞基本塊對應的目錄路徑,FILE為該亞基本塊對應的文件名,FUNC為該亞基本塊對應的函數名,LINE為該亞基本塊所在的源文件行號,COLUMN為該亞基本塊所在的源文件列號,PC_L和PC_H規定了該亞基本塊在目標碼中PC(Program?Count)的范圍,FLAG用于標記亞基本塊是否需要插樁;
若亞基本塊信息SBBI中的DIR?或FILE為空,則認為該亞基本塊無需插樁;若亞基本塊信息SBBI中LINE為0,則認為該亞基本塊無需插樁;
需要插樁的亞基本塊SBBIi構成集合SBBIS。
進一步的,所述對不需要分析的文件、函數、語句塊或庫中需要插樁的亞基本塊進行人工標記包括:
根據待插樁程序的調試信息,還原待插樁程序的源代碼目錄資源樹;
如若調試信息中的源代碼目錄或文件在用戶本地不存在,用戶可指定其他文件夾為源文件目錄或文件;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國工程物理研究院計算機應用研究所,未經中國工程物理研究院計算機應用研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202210960803.6/2.html,轉載請聲明來源鉆瓜專利網。





