Machine code debugger for MC68000 emulators

Debug_68k.dll is a component that can be used by emulators to add MC68000 debugging capabilities.

Download DEBUG_68K.DLL (38KB)

When the emulator invokes the debugger, the following window appears, showing the MC68000 instructions around the current program counter, the values of all registers, and the data on top of the stack:

The user can trace through code, set breakpoints and enter commands to view memory, evaluate expressions and change register values.
The next instruction and the registers that have changed since the previous instruction or command are highlighted in red, and hovering the mouse over an addressing mode in the disassembly view evaluates the address according to the current register values and shows the result in a popup.
Although functionality is still pretty basic and it currently only supports the MC68000 (no 68020 or later), the debugger will gradually improve with new releases.
Compared to a debugger application running on the emulated OS, debug_68k.dll is totally unobtrusive and can be invoked at any time, including during OS startup. It is also possible to set breakpoint in the ROM area. Emulator authors may also find it useful during the first phases of writing an emulator, when it's easy to hook up debug_68k.dll, while the emulator doesn't yet have enough functionality to run a debugger application for the emulated system.
A number of features already planned didn't make it into version 1.0, but may be added in future releases:

If you are an emulator author, it's very easy to use debug_68k.dll. All you need to do is to ask me for the interface (and if you use C++, I can send you the header file and some glue code) and implement five functions (to read and write memory, read and write register values, and to execute one single instruction) and add code to load and invoke the debugger. Optionally, you can write more functions to customize the debugger, for example by adding new debugger commands.

© 2003 Daniele Terdina. All rights reserved.

Visit Q-emuLator's Page.