跳转至

Interrupt 3

無論何時觸發了一個軟件中斷異常, 異常地址以及EIP寄存器的值都會同時指向產生異常的下一句指令. 但斷點異常是其中的一個特例.

EXCEPTION_BREAKPOINT(0x80000003)異常觸發時, Windows會認定這是由單字節的"CC"操作碼(也即Int 3指令)造成的. Windows遞減異常地址以指向所認定的"CC"操作碼, 隨後傳遞該異常給異常處理句柄. 但是EIP寄存器的值並不會發生變化.

因此, 如果使用了 CD 03(這是 Int 03 的機器碼錶示),那麼當異常處理句柄接受控制時, 異常地址是指向 03 的位置.