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~~ | ||