硬體斷點是計算機用語,指由硬體提供給我們的調試暫存器組,我們可以對這些硬體暫存器設定相應的值,然後讓硬體幫我們斷在需要下斷點的地址。硬體斷點是CPU提供的功能,所以要怎么做就得聽CPU的硬體暫存器的了。先來看看關於硬體暫存器的說明。Intel 80386以上的CPU 提供了調試暫存器以用於軟體調試。
硬體斷點和DRx調試暫存器有關。從Intel CPU體系架構手冊中,可以找到DRx調試暫存器的介紹。
DRx調試暫存器總共有8個,從DRx0到DRx7。每個暫存器的特性如下:
·DR0~DR3:調試地址暫存器,保存需要監視的地址,如設定硬體斷點;
·DR4~DR5:保留,未公開具體作用;
硬體斷點原理是使用4個調試暫存器(DR0,DR1,DR2,DR3)來設定地址,以及DR7設定狀態,比如:對這個401000是硬體讀還是寫,或者是執行;是對位元組還是對字,或者是雙字。因此最多只能設定4個斷點。
OllyDbg支持調試暫存器,其稱為硬體斷點。設定方法是在指定的代碼行單擊滑鼠右鍵,執行設定斷點、硬體執行命令。
硬體斷點優點是速度快,在INT3斷點容易被發現的地方,使用硬體斷點來代替會有很好的效果,缺點就是最多只能設定4個斷點。