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