This shows you the differences between two versions of the page.
| — | blog:pushbx:2023:0205_ddt_for_the_pofo [2023-02-05 17:21:01 +0100 Feb Sun] (current) ecm created | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== DDT for the Pofo ====== | ||
| + | |||
| + | **2023-02-05** | ||
| + | |||
| + | This week rr's pointer [[https:// | ||
| + | |||
| + | ===== ===== | ||
| + | |||
| + | The debugger has a few interesting twists: It can load a block device driver (indicated by a cap-sensitive " | ||
| + | |||
| + | However, it has some limitations too: | ||
| + | |||
| + | * Only can load flat-format .COM or flat-format .SYS files | ||
| + | * Cannot load files larger than 64 KiB | ||
| + | * Does not create a PSP for an application, | ||
| + | * No auto-repeat of commands | ||
| + | * R command shows registers in 4 lines, no disassembly (W command disassembles one line; T and N and C commands will act as W when they return control) | ||
| + | * C command supports only one temporary breakpoint | ||
| + | * Assumes that if a breakpoint is set by T, N, or C command that the breakpoint interrupt (int 3) is used to return control to the debugger, in order to restore the breakpoint contents | ||
| + | * Does not support 386 register extensions | ||
| + | * D, E, and U commands operate in the "I/O Segment" | ||
| + | * U/W command only supports 8086 instruction set | ||
| + | * No assembler is included | ||
| + | * First non-hexit after a number may be skipped even if it isn't a blank | ||
| + | * Debugger is not debuggable | ||
| + | * Source is in MASM / TASM / JWasm format | ||
| + | * The names table only contains offsets, the segment is assumed to be the same as the executable' | ||
| + | * Names table symbols are not displayed at all when the linear matches but a different segment is used (whereas lDebug symbolic will show the symbol with a WRT specifier) | ||
| + | * No expression evaluator, not even for specifying registers nor symbols | ||
| + | * D command does not show symbols from the names table | ||
| + | * No equivalent to Debug' | ||
| + | * No permanent breakpoints | ||
| + | * No way to proceed past '' | ||
| + | * D and U command only accept start offset and a length, not start and end offset | ||
| + | * No command for displaying the value of a single register | ||
| + | * No variables or options other than the 14 CPU registers (8 GPR, 4 segregs, FL, IP) | ||
| + | * Only numeric change of FL possible | ||
| + | * No equivalent of lDebug' | ||
| + | |||
| + | I uploaded the debugger [[https:// | ||
| + | |||
| + | {{tag> | ||
| + | |||
| + | |||
| + | ~~DISCUSSION~~ | ||