User Tools

Site Tools


blog:pushbx:2023:0308_ldebug_release_5

lDebug release 5

2023-03-08

The lDebug release 5 is imminent. Update: The release is done, grab packages at https://pushbx.org/ecm/download/ldebug/ or the source at https://hg.pushbx.org/ecm/ldebug/rev/release5

It brings several new features:

  • Support for 40-column displays in the R, U, D, and E commands
  • Expression types
  • The QA and QB and QC and QD commands
  • RC buffer commands
  • The RVP and RVD commands
  • The device driver mode
  • The conditionally debuggable lCDebug build option
  • Dual code segments build option
  • Sharing serial IRQs
  • The TAKEN and NOTTAKEN keywords
  • Debugger exception areas and AMIS private function 33h
  • The CLR operator
  • Variables to control the default length of U and D commands
  • INSTALL and UNINSTALL commands
  • Descriptor modification commands
  • Query patch support for bootloaded mode
  • MMX support commands fixed
  • IF EXISTS R variable THEN command

It also has a number of bugfixes, including:

  • lDebugX in PM handles 32-bit offsets correctly more often, detects use of 32-bit offsets from limits > FFFFh
  • Use of the scratch selector works in some cases where it would have failed
  • R write memory variable command doesn't crash for values ending in FFFFh anymore
  • A range parameter can be ended by a semicolon comment indicator
  • Interrupt 19h call while in application mode now sets up registers to terminate the process on the next trace step
  • Current PSP is read and written using the SDA even in PM
  • Empty binaries now cause an error even if the DOS incorrectly handles them (FreeDOS kernel bug)
  • No longer crash in init if there's no UMCB but int 21.5803 is supported
  • Do not crash in init if int 2Fh is not initialised
  • WHILE condition not checked if pass or non-pass permanent breakpoint runs
  • The ldebug.txt file is now converted to CR LF line endings immediately after Halibut has created it
  • Command line tail in PSP also set up for loading .BIN files
  • Empty /C switch does not cause an error
  • Terminate properly on reaching the end of a stdin file
  • AAM and AAD do not display an operand in disassembly if it would be 0A
  • RC buffer execution is aborted by a Control-C
  • XMS Protected Mode entrypoint is no longer used by default
  • r f . works
  • Bootloaded sector read that crosses a 64 KiB DMA boundary copies correct amount of data from transfer buffer
  • u(bootldpunit).(bootldppart) works even if LDP is a diskette file system
  • Serial IRQ handler passes on call if its IRQ isn't set in the In-Service Register of the PIC
  • RC command line parsing skips leading blanks
  • Double slash without subsequent command line allowed for BOOT PROTOCOL command
  • E and A commands in PM display original selector even if actually writing through the debugger's scratch selector
  • C command never uses debugger's scratch selector (and does not display it either)
  • Do not fault if scratch selector got a low limit in some way
  • BOOT PROTOCOL command always allows use of ENTRY and BPB parameters
  • Allow all address specifications for M command
  • Disassemble mov with segreg and memory operand as always m16
  • Allow operators between ?? and :: in H command
  • Allow single-digit interrupt number for RIxxy variables
  • Disabling string instruction simulation now assumes count as 1 for the access variables
  • Operand size prefix disassembled as part of a push or pop with segreg
  • Do not simulate string instruction on U command
  • lDebugX preserves scratch selector across getexpression calls
  • lDebugX TSR command works in PM
  • Set sleep delta limit to 5 to work around idle function needing more than 1 timer tick
  • Allow bootloaded debugger to access small FAT32 file systems (below 64 Ki clusters)
  • Q or QA could fail due to corrupting the client stack in the PM interrupt 21h handler
  • Access variables for int instructions select size based on mode, ignore operand-size of the instruction
  • Fix S command error if search mask is longer than search area
  • Support EXECUTING keyword on non-386 machines
  • Allow access to VD variable using R command
  • Creating a process resets the DTA
  • Bootloaded init relocation could corrupt part of the debugger in an unlikely case
  • RM command and MMxy register reads work
You could leave a comment if you were logged in.
blog/pushbx/2023/0308_ldebug_release_5.txt · Last modified: 2023-03-08 19:03:36 +0100 Mar Wed by ecm