調試器
調試器
徠DeBugger(調試器)是自從計算機誕生伊始就始終伴隨著程序員的一個摯友,起初的調試器都是基於硬體直接實現的。
直到計算機行業有了比較突出的發展之後,商業化的軟體調試器才與計算機程序編寫工作人員們見面。作為軟體維護與錯誤修正的一個最重要、最直接,也是必不可少的一種機制,中央處理器製造商也在不厭其煩地在CPU物理結構上支持著調試這種行為。
調試器的工作原理是基於中央處理器的異常機制,並由操作系統的異常分發\事件分發的子系統(或模塊)負責將其封裝處理后,以比較友好的方式與調試器進行實時交互。
每當調試器捕獲到一個異常\事件之後,將會根據調試器的自身邏輯來判定是否需要接管這個異常\事件,並決定由調試器的哪個函數來接管。當調試器接管下來這個異常\事件后,將根據用戶的需求對其進行進一步的處理,處理完畢后再通知系統已經處理完畢,此時新一輪的異常\事件捕獲、分發循環開始。
1、控制軟體運行
調試器的最基本功能就是將一個飛速運行的程序中斷下來,並且使其按照用戶的意願執行。調試器是靠迫使目標程序觸發一個精心構造的異常來完成這些工作的。
2、查看軟體運行中信息
查看軟體的當前信息,這些信息包含但不限於當前線程的寄存器信息,堆棧信息、內存信息、當前EIP附近的反彙編信息等。
3、修改軟體執行流程
徠修改內存信息、反彙編信息、堆棧信息、寄存器信息等等。