Skip to content

Releases: Baron-von-Riedesel/DOS-debug

v2.50

01 Jun 19:18
Compare
Choose a tag to compare
  • DebugR fix: debugger assumed a 32-bit ring0 SS register on init;
    if this wasn't true, a crash may have occured.
  • fix r cmd: the disassembler tried to show memory contents for the LEA
    instruction - this may have caused a GPF.
  • DebugX fix e cmd, prompt mode: segment part changed to scratch sel
    after first line in protected-mode if it was a r/o selector.
  • fix e cmd, prompt mode: '-' after byte input did skip that input.
  • fix u cmd: address size prefix 67h for string instructions.
  • fix n cmd: names > 128 chars may have modified debug's code seg.
  • fix l & q cmd: failure of debuggee termination was ignored and the
    command continued, leaving an orphaned debuggee in memory.
  • fix a cmd: regression since v1.18: "call/jmp [mem_ref]" without a size
    given did default to a far call/jmp.
  • fix u cmd: operand size prefix 66h for 8/16/32-bit relative jmps.
  • fix a cmd: NEar qualifier was accepted/ignored for immediate far
    jmp/call.
  • u cmd, call far [mem]: qualifiers "FAR"/"DWORD FAR" changed to
    "FAR16"/"FAR32".
  • DebugR(L): Q cmd may be activated for this variant.
  • cmds bp/bc accept up to 4 permanent breakpoints.
  • cmds bp/bc implemented, but inactive for Debug & DebugX; activated in
    DebugXg & DebugXv variants.
  • G/T/P cmds: if possible, 386 debug registers will be used to set
    temporary breakpoints. Active for DebugX, DebugR(L).
  • new cmdline options /s and /v for debugger variants that may use
    hardware breakpoints ( option /v not for DebugR(L) variant ).
  • g cmd: if a breakpoint cannot be written, the cmd is aborted.
  • Debug & DebugX may now be created in .exe file format.
  • mktables.c: creates ASMTBL.INC/DISTBL.INC instead of DEBUGTBL.INC.
  • cmds a, u: instruction RDTSC added.
  • another variant of DebugR - DebugRV, with support for V86 mode.
  • DebugR(V) dt cmd: optionally displays trapped ports.
  • DebugRV di cmd: displays IDT & IVT vectors.
  • DebugR rn cmd: won't run cmd if CR0.EM is set.

v2.02

11 Feb 18:19
Compare
Choose a tag to compare
  • fixed S cmd: position display was corrupted in v2.00-v2.01.

v2.01

08 Jan 11:26
Compare
Choose a tag to compare
  • fixed: addr/opsize prefixes "toggle", but just once.
  • fixed: debug exceptions occuring inside debug are now ignored.
  • fixed dm cmd: invalid last mcb no longer displayed.
  • added a ring0 (PL0) variant for long mode - DebugRL.bin.
  • DEBUGR(L): added bp & bc cmds.

v2.0

06 Dec 10:38
Compare
Choose a tag to compare
  • fixed: routine int21ah9 did use DOS, even if InDos flag was set.
  • fixed: reading stdin from file wasn't fully MS Debug compatible.
  • fixed: correctly handle tabs if output is via BIOS.
  • fixed L/W cmds: error msg for read/write drive was crumbled since v1.18.
  • ensured the correct video page is used when debugger has to display something if the InDOS flag is set AND page swapping is active.
  • mktables.c fix: didn't generate a valid debugtbl.inc.
  • added a "boot" variant of the debugger - DebugB.bin.
  • added a ring0 (PL0) variant of the debugger - DebugR.bin.
  • DI cmd may be activated for standard DEBUG.COM.
  • DEBUGX fix: restore hooked protected-mode interrupts when client terminates.
  • DEBUGX fix: c & s cmds finally work with 32-bit offsets.
  • DEBUGX fix, e cmd: generate a GPF if no data alias can be found for a code segment ( instead of silently skip the write ).
  • DEBUGX fix: disassembly of [CS:IP] in register dump may have caused a GPF in debugger if the memory address was beyond seg limit - 3.
  • DEBUGX fix, g cmd: if multiple breakpoints with different segment parts were set in protected-mode, hazardous writes may have happened.
  • DEBUGX fix, m cmd: '$' qualifier for the source address segment was rejected.
  • DEBUGX fix, c & m cmds: if both source and destination segment parts were readonly, the scratch selector was used twice.
  • DEBUGX: added cmdline option /2.
  • DEBUGX: hook into protected-mode debug interface Int 41h and make debugger visible there.
  • DEBUGX, a & e cmd: usage of scratch descriptor for readonly segments now hidden, so the displayed address' segment part isn't changed.
  • DEBUGX, a & d cmd: default segments are no longer automatically converted to selectors during initial switch to protected-mode.
  • DEBUGX: exceptions 0dh/0eh are set/reset on debugger entry/exit.
  • DEBUGXV: stop in debugger if SYSREQ is pressed.

v1.29

06 May 17:11
Compare
Choose a tag to compare
  • DEBUGX bugfix c/d/e/m/s-cmd: an offset beyond 0ffffh was rejected if the segment descriptor's 'default-size' flag wasn't set.
  • DEBUGX bugfix e-cmd interactive mode: offset increment and decrement was always 16-bit only.
  • DEBUGX bugfix e-cmd non-interactive mode: skip test for 16-bit wrap if segment is larger than 64 kB.
  • regression in debugxg. v1.28: the driver version crashed when it became active because the new mode detection code always returned status "in protected-mode".
  • regression in DEBUGX, v1.28: on rare conditions, the debugger used a wrong pointer (debuggee's SS:ESP instead of SS:SP) to clear TF on the debuggee's stack.
  • clear TF if child process is to be canceled ( else a "memory corrupt" error may appear in DOS ).
  • DEBUGX, e-cmd: don't use int 21h, ah=8 directly in interactive mode.
  • volume unlock: removed setting registers dx/bh, since useless.
  • DEBUGX: behavior of q-cmd changed if debuggee is in protected-mode.Entering 'q' at the '#' prompt will (hopefully) make the debuggee
    exit protected-mode and debugx's real-mode prompt '-' should appear.
  • DEBUGX: new command variant 'qq' to terminate a DPMI client that has intercepted protected-mode int 21h and refuses to quit.
  • another variant - DEBUGXV - may be created. It allows to flip video screen between debugger and debuggee.

v1.28

10 Mar 13:03
Compare
Choose a tag to compare
   - DEBUGX bugfix e-cmd: used wrong offset when reading from 32-bit 
     segments.
   - DEBUGX bugfix d-cmd: hiword(ecx) wasn't cleared, resulting in a
     "default" length for 32-bit segment dump > 128.
   - DEBUGX bugfix g/t/p-cmd: if debuggee is stopped in protected-mode,
     saved stack at debugger's PSP:[2Eh] must not be "adjusted".
   - added debug displays (created if _DEBUG is defined)
   - DEBUGX: int 2Fh, ax=1686h to detect mode no longer used - this makes 
     interrupt 2Fh traceable.
   - 'e' cmd: don't stop input after byte '0d' has been entered

.

v1.27

08 Nov 11:43
Compare
Choose a tag to compare
   - added new variant DEBUGXU.COM. This version does not use int 15h, 
     ah=87h inside the DX command, thus avoiding to disable a possibly
     active unreal mode. The catch is that this version's DX command won't
     work in V86 mode.
   - disassembler handles operand size prefix for one-byte "push <imm>" 
     opcodes correctly. OTOH, for 2/4 byte "push <imm>" opcodes, the 
     disassembler no longer displays the operand size, since the size
     is obvious.
   - if InDOS flag is set, a '!' is preceding the debugger prompt.
   - BIOS used when waiting for a key in help msg display.
   - 'e' cmd uses BIOS if InDOS flag set.