The Resume Flag Prevents Multiple Debug Exceptions
When a debug instruction breakpoint exception occurs, the processors jumps to the debugger's exception handler. Because this exception is a fault, the CS:EIP return address value on the stack points to the instruction that caused the exception, rather than to the instruction that follows it. In the handler, the breakpoint is reported to the programmer. If the programmer chooses to resume the interrupted program and executes an IRET rather than an IRETD (Interrupt Return from Debugger), execution of the interrupted program resumes at the same instruction and the same exception is generated again.
To prevent this, the exception handler should set the EFlags[RF] (Resume Flag) bit in the EFlags image ...
Get The Unabridged Pentium 4 IA32 Processor Genealogy now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.