[發明專利]基于回放的代碼調試方法有效
| 申請號: | 201610954150.5 | 申請日: | 2016-11-03 |
| 公開(公告)號: | CN108021495B | 公開(公告)日: | 2021-05-14 |
| 發明(設計)人: | 蔣欣欣;張楊;閆帥 | 申請(專利權)人: | 北京計算機技術及應用研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 中國兵器工業集團公司專利中心 11011 | 代理人: | 劉東升 |
| 地址: | 100854*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 回放 代碼 調試 方法 | ||
本發明涉及一種基于回放的代碼調試方法,屬于計算機軟件技術領域。本發明通過插樁、追蹤與記錄以及回放的三步式的代碼調試策略,消除了由并行程序中多個進程并行執行導致的并行程序在運行過程中的不確定性,定位了錯誤代碼,實現了代碼的確定性回放,能夠明顯提高代碼調試的效率和準確度,改進了軟件研發的質量,為并行程序調試工作提供了方法參考。
技術領域
本發明涉及計算機軟件技術領域,具體涉及一種基于回放的代碼調試方法。
背景技術
在軟件開發過程中,代碼調試作為保證程序有效性、正確性的關鍵環節,被給予高度的重視,在一般的軟件開發過程中,調試成本和時間占到整個軟件項目的50%以上。美國國家標準技術研究所(NIST)收集的資料顯示,代碼調試能顯著降低軟件故障引發的損失,約能彌補整體損失的33%左右。因此,對代碼調試技術的深入研究對提高軟件開發效率,保證軟件開發質量起著至關重要的作用。
針對代碼調試問題,目前應用最為普遍的是程序切片技術。程序切片技術是一種對程序進行分解的代碼分析技術,在程序理解、程序分析、調試、軟件測試以及維護等諸多領域發揮著重要的作用。根據其實現方式可以進一步分為靜態切片和動態切片兩種。靜態切片是考慮程序所有可能的執行情況,獲取程序中可能改變某個特定變量值的所有可執行語句,當調試過程中發現某個變量值出錯時,可以只檢查這個變量的靜態切片相關代碼,從而避免檢查整個程序?;趧討B切片的方法,只考慮某個具體輸入程序的執行路徑,該路徑由直接或間接影響某個變量值的所有語句和謂語組成。該方法使得動態切片中的代碼量比靜態切片有了大大的減少,減小了查找范圍,從一定程度上提高了代碼調試的效率。又有學者提出用執行切片代替動態切片的方法。執行切片的含義即是某個測試用例所執行的所有語句。通過對出錯用例的觀察,分析其所有的執行代碼,從而確定程序的執行切片。程序切片技術,可以為開發人員縮小代碼出現錯誤的范圍,降低軟件開發人員在調試過程中要分析的代碼量。
雖然靜態切片方法能夠定位到錯誤代碼,但是該方法由于無法準確獲取程序真正執行的信息,一些實際執行中不會對變量值造成影響的代碼也可能被引入到靜態切片集合中,造成靜態集合過大,明顯降低了代碼調試的效率;而對于動態切片方法,該方法雖然從一定程度上較少了代碼查找范圍,但計算量大,并且要求較大的存儲空間來存儲程序執行信息,占用內存大;執行切片方法雖然從一定程度上解決了動態切片內存占用過大的問題,但是對所有代碼的分析無疑又增加了代碼調試人員的工作量。
發明內容
(一)要解決的技術問題
本發明要解決的技術問題是:為適應由于代碼規模增長、軟件結構并行化帶來的代碼調試技術變化帶來的需求,提高代碼調試效率和精確度。
(二)技術方案
為了解決上述技術問題,本發明提供了一種基于回放的代碼調試方法,包括以下步驟:
S1、通過識別插樁點,在插樁點植入探針,對源程序進行插樁,為代碼回放做準備;
S2、應用向量時間戳標識并行程序的每一個同步事件,進行同步事件的追蹤與記錄;
S3、進行并行程序的確定性回放。
優選地,步驟S1具體包括以下步驟:
源程序插樁:采用將源程序中的標準庫函數替換為自定義函數的方法進行源程序插樁;
捕獲動態信息:將插樁后的源程序進行編譯和鏈接,運行程序,隨著探針的逐步插入,記錄探針拋出的動態信息,寫進事件記錄庫;
數據處理與分析:通過對所述事件記錄庫中的數據進行提取和分析,揭露程序內部的行為和特征,為代碼回放做準備。
優選地,步驟S2具體包括以下步驟:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京計算機技術及應用研究所,未經北京計算機技術及應用研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610954150.5/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:可移動景觀建筑物的施工方法
- 下一篇:氣動液體混合罐





