[發明專利]反向調試器和反向調試方法有效
| 申請號: | 201210267108.8 | 申請日: | 2012-07-30 |
| 公開(公告)號: | CN103577315B | 公開(公告)日: | 2017-02-22 |
| 發明(設計)人: | 王帆;李琦;杜久常;陳曉玲;梅麗剛 | 申請(專利權)人: | 國際商業機器公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京市金杜律師事務所11256 | 代理人: | 酆迅 |
| 地址: | 美國紐*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 反向 調試 方法 | ||
技術領域
本發明涉及程序調試器,更具體地,涉及一種反向調試器和反向調試方法。
背景技術
常用調試器(debugger)的基本功能包括:通過使目標程序觸發一個異常將一個運行的程序中斷下來,并且使其按照用戶的意愿執行;查看軟件運行中信息,這些信息包含但不限于當前線程的寄存器信息和內存信息等;以及修改軟件執行流程,包括:修改內存信息、寄存器信息等等。
調試器的工作原理是基于中央處理器的異常機制,由操作系統的異常分發(或者事件分發)子系統負責將其封裝處理后,以比較友好的方式與調試器進行實時交互。當調試器捕獲到一個異常(或事件)之后,將會根據調試器的自身邏輯來判定是否需要接管這個異常(或事件),并決定由調試器的哪個函數來接管。當調試器接管下來這個異常(或事件)后,將根據用戶的需求對其進行進一步的處理,處理完畢后再通知系統已經處理完畢,再開始新一輪的異常(或事件)捕獲、分發循環。
調試程序的過程中,程序員經常需要知道自己對于程序的調試是否走得太遠,先前步驟的執行結果是否正確等,這需要用到反向調試技術。反向調試是調試器中的一種調試方法,該方法允許程序回到程序已經執行過的歷史點。目前提供反向調試功能的調試器包括TotalView?Technologies公司的TotalView?Debugger,以及開源社區的GDB。
理論上講,一個程序如果想要回到已經執行過的歷史點,必須記錄該歷史點的狀態,包括該歷史點的和該程序相關的內存值和寄存器值。現有的反向調試功能實現方法要么需要的存儲空間太多,要么運行到反向目標斷點的時間過長。
發明內容
為了解決現有技術中存在的問題,需要提供一種反向調試器及反向調試方法,使得需要的存儲空間合理,并且運行到反向調試目標斷點的時間也不太長。
根據本發明的一個方面,提供了一種反向調試程序的方法,包括:
獲取編譯器輸出的該程序的調試信息,所述調試信息中包含該程序的擴展的基本塊相關的信息;
響應于該程序進入反向調試,在至少一個擴展的基本塊的入口地址設定反向調試檢查點;
響應于程序運行到設定的反向調試檢查點,存儲該反向調試檢查點對應的調試需要存儲的信息;
響應于接收到設定的反向調試目標斷點,
將程序回退到該反向調試目標斷點之前的、距離該反向調試目標斷點最近的反向調試檢查點,并獲得該反向調試檢查點存儲的調試需要存儲的信息,并繼續執行該程序,直至執行到該反向調試目標斷點。
根據本發明的另一個方面,提供了一種反向調試器,包括:
獲取裝置,被配置為獲取編譯器輸出的該程序的調試信息,所述調試信息中包含該程序的擴展的基本塊相關的信息;
設定裝置,被配置為響應于該程序進入反向調試,在至少一個擴展的基本塊的入口地址設定反向調試檢查點;
存儲裝置,被配置為響應于程序運行到設定的反向調試檢查點,存儲該反向調試檢查點對應的調試需要存儲的信息;
回退裝置,被配置為響應于接收到設定的反向調試目標斷點,將程序回退到該反向調試目標斷點之前的、距離該反向調試目標斷點最近的反向調試檢查點,并獲得該反向調試檢查點存儲的調試需要存儲的信息,并繼續執行該程序,直至執行到該反向調試目標斷點。
附圖說明
通過結合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述以及其它目的、特征和優勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標號通常代表相同部件。
圖1示出了適于用來實現本發明實施方式的示例性計算系統的框圖;
圖2示出了根據本發明一種實施方式的反向調試程序的方法的流程圖;
圖3給出了基本塊和擴展的基本塊術語模型圖;
圖4a示出了Dwarf調試信息中的調試信息入口,圖4b示出了編譯器產生的Dwarf格式的信息的例子;
圖5示意性地示出了根據本發明的一種實施方式在調試信息中加入的擴展的基本塊的信息;
圖6示出了在反向調試檢查點調試器需要存儲的信息的一種實施方式;
圖7示出了在圖3所示的程序中被執行的基本塊BB和擴展的基本塊EBB以及被加入的目標調試斷點;
圖8示出了圖2所示的調試方法的使用場景;以及
圖9示出了反向調試器900的結構框圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于國際商業機器公司,未經國際商業機器公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210267108.8/2.html,轉載請聲明來源鉆瓜專利網。





