up: 
Chapter 12 -- Debugging
prev: Chapter 12 -- Debugging
 
next: 12.2  Debug Registers
12.1  Debugging Features of the Architecture
The features of the 80386 architecture that support debugging include:
- 
Reserved debug interrupt vector
 - 
Permits processor to automatically invoke a debugger task or procedure when
an event occurs that is of interest to the debugger.
 - 
Four debug address registers
 - 
Permit programmers to specify up to four addresses that the CPU will
automatically monitor.
 - 
Debug control register
 - 
Allows programmers to selectively enable various debug conditions
associated with the four debug addresses.
 - 
Debug status register
 - 
Helps debugger identify condition that caused debug exception.
 - 
Trap bit of TSS (T-bit)
 - 
Permits monitoring of task switches.
 - 
Resume flag (RF) of flags register
 - 
Allows an instruction to be restarted after a debug exception without
immediately causing another debug exception due to the same condition.
 - 
Single-step flag (TF)
 - 
Allows complete monitoring of program flow by specifying whether the CPU
should cause a debug exception with the execution of every instruction.
 - 
Breakpoint instruction
 - 
Permits debugger intervention at any point in program execution and aids
debugging of debugger programs.
 - 
Reserved interrupt vector for breakpoint exception
 - 
Permits processor to automatically invoke a handler task or procedure upon
encountering a breakpoint instruction.
 
These features make it possible to invoke a debugger that is either a
separate task or a procedure in the context of the current task. The
debugger can be invoked under any of the following kinds of conditions:
-  Task switch to a specific task.
 -  Execution of the breakpoint instruction.
 -  Execution of every instruction.
 -  Execution of any instruction at a given address.
 -  Read or write of a byte, word, or doubleword at any specified address.
 -  Write to a byte, word, or doubleword at any specified address.
 -  Attempt to change a debug register.
 
up: 
Chapter 12 -- Debugging
prev: Chapter 12 -- Debugging
 
next: 12.2  Debug Registers