Contents of the BXD.DOC file
b r a n d X S Y M B O L L I C D E B U G G E R
by Sonam G Gyato
This program is a software debugger for the IBM pc/AT and other
close compatibles. It will work with both PC and MS DOS versions
later than 2.1. This version supports both the MONOCHROME (MDA)
and the 80x25 text modes of COLOR GRAPHICS ADAPTOR (CGA). Since
bXd is a full-screen debugger, it traps all bios video calls and
buffers the output to it's own memory location. In the case of
the CGA, you have simultaneous access to the four display pages.
Two main criterias have been taken into account in the design of
full-screen display; extensive online help with all the
available commands; "intelligent" disassembly of code;
access variables by symbol names plus more.
simplicity versus power
This is a difficult catch-22 choice for software
designers. Make it simple...it has little power,
make it powerful...it becomes difficult to use. bXd
follows the middle road. It is simple enough to learn
in one session and yet capable enough to debug complex
The best way to learn this program is by using it. After loading
the program, press function-key #9. This will display the help
menu and enable you to get help on any of the displayed commands.
If you are using bXd for the first time, it is recommended that
you go through all the commands atleast once. This document will
assume that you will do so and not explain it here.
Below is an example of invoking bXd from the DOS prompt.
A>bXd [userprog[.COM]] [user_arguments] [
1. The first argument is the optional name of the program to be
debugged. If no extension is given, then a COM file is
assumed. In the case of EXE files, you have to specify the
If a filename is given, then bXd tries to load the symbol
file associated with it. The name of the symbol file is
derived from the given filename and the extension SYM.
More on the symbol file format later.
2. The second set of arguments is what will be passed to your
program as its command line. This text is found at offset
81H in your programs PSP (read DOS tech manual for more
information on PSPs).
3. The last argument enables you to redirect the input and
output to another device besides the console. This might be
of some help if you're debugging a program that expects
input from DOS console i/o routines.
FUTURE RELEASE PROPOSALS:
This is the first release of bXd and I am very much interested in
receiving feedback from the users. I am particularly interested
in features you find awkward to use, better user-interface
and commands you would like implemented. For example, would you
like the debugger to track the instructions being executed (hmmm?).
Below are some new features that are planned for the next
and hopefully final release.
One of the major additions is a Non-Maskable-Interrupt reset
button (this requires a little hardware tinkering). This
will be of great help towards debugging. Press the button
and the program being debugged will be interrupted by bXd.
Full support of the CGA. With this you will be able to debug
graphics programs. There will also be a facility to write to
text mode screens "pseudo" directly.
I am also thinking about making the debugger a resident
program which will be activated by the previously mentioned
NMI reset button. This will require the user program and
symbol table loader to be a separate file. The source code
for this file will be supplied. You can then modify this
program to load a symbol table compatible with your linker.