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