[發明專利]基于回放的代碼調試方法有效
| 申請號: | 201610954150.5 | 申請日: | 2016-11-03 |
| 公開(公告)號: | CN108021495B | 公開(公告)日: | 2021-05-14 |
| 發明(設計)人: | 蔣欣欣;張楊;閆帥 | 申請(專利權)人: | 北京計算機技術及應用研究所 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 中國兵器工業集團公司專利中心 11011 | 代理人: | 劉東升 |
| 地址: | 100854*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 回放 代碼 調試 方法 | ||
1.一種基于回放的代碼調試方法,其特征在于,包括以下步驟:
S1、通過識別插樁點,在插樁點植入探針,對源程序進行插樁,為代碼回放做準備;
S2、應用向量時間戳標識并行程序的每一個同步事件,進行同步事件的追蹤與記錄;
S3、進行并行程序的確定性回放;
步驟S1具體包括以下步驟:
源程序插樁:采用將源程序中的標準庫函數替換為自定義函數的方法進行源程序插樁;
捕獲動態信息:將插樁后的源程序進行編譯和鏈接,運行程序,隨著探針的逐步插入,記錄探針拋出的動態信息,寫進事件記錄庫;
數據處理與分析:通過對所述事件記錄庫中的數據進行提取和分析,揭露程序內部的行為和特征,為代碼回放做準備;
步驟S2具體包括以下步驟:
同步事件的標識:通過為并行程序的每一個同步事件打上一個向量時間戳的方式對事件進行標識,然后根據這些事件的向量時間戳判斷事件之間的時序關系,將時序關系進行記錄;
同步事件的追蹤與記錄:在追蹤程序運行時判斷每個消息接受操作所接受消息的來源及去向信息,并進行記錄,每一個進程維護一個同步事件信息,用于追蹤該進程當前運行到的同步事件以及向量時間戳;并且在追蹤時,為每一個進程設置一個周期性的檢查點,每隔預設時間,調用函數sigsuspend()自動掛起,調用檢查點程序,保存當前進程的信息后,繼續喚醒進程執行;
步驟S 3中,當程序在運行過程中遇到錯誤終止,或者運行結束時,通過訪問事件記錄庫中的信息,在回放模塊與錯誤模塊的相互協調下進行并行程序錯誤狀態的回放與調試;
步驟S3具體為:當程序開始執行時,目標進程的執行請求在請求隊列中排隊;回放模塊從事件記錄庫中讀取記錄階段所記錄的事件信息,并與目標進程提交的執行請求進行比較,決定是允許此次并行操作的執行,還是將其在進程等待隊列中執行掛起狀態,等待下一次的響應,錯誤模塊接收調試指令,控制進程的執行情況,在單步執行的基礎上,讀取進程的狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京計算機技術及應用研究所,未經北京計算機技術及應用研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610954150.5/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:可移動景觀建筑物的施工方法
- 下一篇:氣動液體混合罐





