Download
Author: David Lindauer
Version: 9.4
Release Date: Jan 4, 2008

Executables: GRDB for DOS
Executables: VALX 16/32 bit linker Version 3.9.1.1
Executables: MKSYM program
Links
LadSoft HomePage
CC386 compiler package

Email
Author: David Lindauer

GRDB is the 'Get Real' real mode debugger for x86. It is somewhat similar to debug, but has a lot of extensions to allow working on real mode with current processors, such as real mode and native 32-bit code support and MMX support. There are also a lot of enhanced features supported as well. The current version even allows support for 32-bit code segments in real mode. A future version may allow debugging DPMI programs.

GRDB is about 10 years old. The original version was worked out in about a week's time and although it had several things debug didn't was still fairly primitive. Over the years a lot of features have been added as people requested them, and some people have been instrumental in isolating bugs to fix. That said there may still be bugs in the thing, if you think you've found one use the link at the left and write to the author!

This is a bug fix release. If you've used GRDB before please note that some commands such as 'd', 'c', 'f' and so forth will now consider the 'end address' argument to be inclusive. Previous versions limited to one less than the specified 'end' value.

Some of the features in GRDB are as follows:

- A variety of optional settings
- Support for debugging FPU code
- Support for debugging Flat Real applications
- Recognizes register names for addressing purposes
- Command line history
- Supports redirection of stdin to run script files
- updated Support for PCI bus I/O (y command)
- support for MMX instructions and register dump
- an option to allow assembly/disassembly of native 32-bit code
- support for a debug-like RF command
- e command allows entry of strings
- command line editing added
- numeric processor register dump is more intuitive now
- memory preview with the 'r' command
- fixed PCI to do all buses
- counted 'p' command
- / command allows immediate execution of instructions
- DW and DD commands to change the size of dumped memory
- 32-bit real mode code segment support
- automatically evaluates expressions in commands
- fixed support for SPAWN functions to work properly
- symbol table support
- added undocumented SALC,ICEBP,LOADALL instructions
- added ?c to show CPUID information
- 'pr' command support in 32 bit real mode code segs
- allows optional entry of start/length pairs on most commands
- arithmetic operations on seg regs work
- enter key repeats some common commands : D U T F are supported
- command line history was made more intuitive
- redirecting the standard input works properly now
- DTA of debugee is handled properly now
- dual monitor support included
- added CLS command
- colorized displays
- debugger maintains a separate interrupt table for itself
- DPMI support
- will now open .COM and .EXE files when you don't specify a file extension on the command line
- NEW! support for serial ports/ANSI escape sequences

You can download GRDB from the link on the left. When symbol table support was added two methods for creating symbol tables were instrumented. The first method was to use the VALX linker that I provide with the compiler package to create a symbol file. The second method uses a program called 'MKSYM' to parse the linker map file and generate a symbol file. Both of these programs may be downloaded from links on the left.

Note that you can use the symbol table even if you don't use an assembler, functions exist to edit it, save it and load it.