Hello list.
Here's another release of lDebug (with a small L). This application is
an advanced line-oriented debugger for 86-DOS alike systems. It can be
loaded instead of a DOS kernel (bootloaded), as a device driver, or as a
DOS application. The DOS uses may attach or detach from processes using
the ATTACH and TSR commands respectively, adding the resident debugger
mode to the normal use as a DOS application. There is a build included
in the release which supports running as a DPMI client to debug another
DPMI client.
This is a bugfix and incremental release after last month's release 7
[1]. A few highlights of what changed:
Release packages do not contain listing files any longer. Some temporary
files are also deleted after building This saves a lot of space for all
the build packages except for the SvarDOS binary-only package. One
reason for dropping the listings is that the debugger main listing as
well as the Extension for lDebug listings are not particularly useful
with a non-debuggable build of the debugger, which is the only build
provided with the release.
If desired, the listing files can be obtained in two ways: Either by
running (from ldebug/source/) "./make reproduce" and "./makinst.sh" and
(from ldebug/source/eld/) "./mak.sh", or by downloading yesterday's [2]
or today's [3] current builds from our server. (Today's current build is
not yet available but will be created later today before midnight in the
+0100 timezone.) We have ensured that the map files and listing files
for these builds are almost exactly the same, excepting the text
contents of some version strings of the main debugger executable. One of
the bugfixes in release 8 concerns filling the AMIS description message
to avoid differing offsets due to a difference in the message length.
Another fix involves running the debugger as a device driver. During
initialisation of this mode, the debugger can accept command line
switches. However, specifying a program name to load is invalid for the
device mode debugger before an ATTACH command ran successfully. When
such a name is provided on the command line, it will now display an
error message that reads "Cannot terminate attached while resident."
instead of crashing the kernel [4].
Another set of bugs fixed involves the drive locking needed to write
sectors to a drive on MS-DOS v7 and v8. The first bugfix is that the
correct drive is now unlocked after the write operation, rather than a
random one. The second bugfix is that the lock and unlock calls are also
done on MS-DOS v7.00 (from the original MSW 95), which has the locking
feature (to protect its LFNs) but does not use the new style disk packet
interface (for FAT32 drives) introduced in MS-DOS v7.10 (corresponding
to a later MSW 95 revision and MSW 98).
I also attempted to add a way to preserve the current lock state of a
drive before locking it for writing, but this turned out not to work (at
least not in pure MS-DOS mode without MSW running). As this failed, the
debugger will now unconditionally unlock a drive after it wrote a
sector. (This was the intended mechanism for this, but did not work
correctly prior to the bugfixes.)
Another change is that the compressed executables now default to support
depack progress displays. This defaults to a dots display for bootloaded
mode and no display for device driver and application mode. For the DOS
modes (that is, not bootloaded mode) setting the environment variable
%LDEBUGPROGRESS% allows to select a different progress display choice.
The defaults for the progress display can be patched in the inicomp
(depacker) stage. Newly provided C programs [5] can be used to patch
both the inicomp progress display choices as well as the query patch
site in the iniload boot loading stage [6]. Unlike the earlier patch
Script for lDebug shipped with ldosboot, these programs can be used even
when arbitrary data is appended to the debugger executables. The
provided build contains DOS executables compiled from the C sources
using tkchia's gcc for 8086 DOS targets. However, the C sources can be
compiled for direct use on other platforms as well.
Another bug that got fixed was likely introduced during the
reorganisation of the Script for lDebug and Extension for lDebug loaders
when ELDs were added and refined. In bootloaded mode, a "Y :label"
command within a Script for lDebug file would not work any longer. This
command is used to "call" a different part of the same Script for lDebug
file that is already running.
Finally, the test suite was adapted and verified to run to completion
correctly for lDebug, lDebugX, lDDebug, lDDebugX, and lCDebugX (all both
in bootloaded or application mode). The ELD comparison program was also
run on all registered ELD test install commands [7] and test run
commands [8]. The testing did turn up the Y bug described in the
previous paragraph as well as two wrong relocations in the dpb.eld
utility [9].
As usual, all the news in the manual [10] and even grittier details in
the hg repo [11]. Release packages are provided on our server [12],
including the FreeDOS and SvarDOS packages in the subdirectories. All
links are listed on my website too [13]. As the news blurb I would
suggest the following:
New lDebug release 8
The lDebug debugger (spelled with a small L) is a line-oriented DOS
debugger based on FreeDOS Debug/X, originating as an MS-DOS Debug clone.
Release 8 is a maintenance release with some bugfixes, testing updates,
new progress displays for the executable depackers, and a smaller
release sources archive achieved by dropping temporary and listing
files, and building only ELDs without the XLD variants. The lDOS boot
iniload and inicomp stages can be patched using new utilities provided
as C programs. For more details, see the [email list announcement] [14]
or find "everything lDebug" at [the lDebug website] [13]. We've also
mirrored this release at the FreeDOS Files Archive at Ibiblio, under
[/dos/debug/ldebug]
Regards,
ecm
[1]: https://sourceforge.net/p/freedos/mailman/message/58738462/
[2]: https://pushbx.org/ecm/download/old/ldebug/20240307.zip
[3]: https://pushbx.org/ecm/download/old/ldebug/20240308.zip
[4]: https://github.com/FDOS/kernel/issues/142
[5]: https://pushbx.org/ecm/download/patchini.zip
[6]: https://pushbx.org/ecm/doc/ldosboot.htm#protocol-sector-iniload-patch
[7]: https://hg.pushbx.org/ecm/ldebug/rev/46084a0129f1
[8]: https://hg.pushbx.org/ecm/ldebug/rev/fae67d061195
[9]: https://hg.pushbx.org/ecm/ldebug/rev/95eef5ab0eb4
[10]: https://pushbx.org/ecm/doc/ldebug.htm#news-r8
[11]: https://hg.pushbx.org/ecm/ldebug/log/release8
[12]: https://pushbx.org/ecm/download/ldebug/
[13]: https://pushbx.org/ecm/web/#projects-ldebug
[14]: insert link to mailing list announcement in the freedos-user archives
_______________________________________________
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user