Debug: G--Notes
Using the address parameter
You must precede the address parameter with an equal sign (=) to distinguish the starting address (address) from the breakpoint addresses (breakpoints).
Specifying breakpoints
The program stops at the first breakpoint it encounters, regardless of where
you typed that breakpoint in the breakpoints list. Debug replaces the original instruction at each breakpoint with an
interrupt code.
When the program reaches a breakpoint, Debug restores all breakpoint addresses
to their original instructions and displays the contents of all registers, the
status of all flags, and the decoded form of the last instruction executed.
Debug displays the same information as it would display if you used the Debug r (register) command and specified the breakpoint address.
If you do not stop the program at one of the breakpoints, Debug does not
replace the interrupt codes with the original instructions.
Limitations on setting breakpoints
You can set breakpoints only at addresses containing the first byte of an 8086
operation code (opcode). If you set more than 10 breakpoints, Debug displays
the following message:
bp Error
Requirements for the user stack pointer
The user stack pointer must be valid and must have 6 bytes available for the g command. This command uses an iret instruction to jump to the program being tested. Debug sets the user stack
pointer and pushes the user flags, the code segment register, and the instruction
pointer onto the user stack. (If the user stack is not valid or is too small,
the operating system might fail.) Debug places an interrupt code (0CCh) at the
specified breakpoint address(es).
Restarting a program
Do not attempt to restart a program after Windows NT displays the following
message:
Program terminated normally
To run the program properly, you must reload it by using the Debug n (name) and l (load) commands.
More Information About Debug: G
Debug: G--Examples
Debug: G