KMD is a debugger that features a graphical user interface and has the capability of debugging various types of software.
The ability to load many executable formats, like ELF, and still display and follow the original source, even from multiple source file programs, was a nice touch. KMD also supports breakpoints and watchpoints, which can trap specific instructions - like loading or executing instructions - giving the user more control. Support for other features, like FPGA's, is also available, which allows loading or any control required to drive a specific hardware device.
One of KMD's standout features is its use of chump. Chump allows for disassembly and line assembly, and also allows new architectures to be easily added without the need to recompile the system. KMD's communication with the backend is done using two pipes/fifos, utilizing a simple set of codes. This means creating a back-end communication program using very little memory on the target device is possible.
Compiling KMD is an easy process. After downloading the latest version, the archive is unzipped using tar zxf KMD-latest.tar.gz. Once in the KMD directory, run the configure script with ./configure, followed by make. The compiled programs will then be found in the src directory. To run KMD, specify that you are running with the default configuration file (-i), using an emulator called jimulator (-e ./jimulator).
It is important to note that KMD requires several libraries, including GLib, GDK, GTK, BFD, and libiberty. GLib provides useful data types, macros, type conversions, string utilities, and a lexical scanner. GDK is a wrapper for low-level windowing functions, while GTK is an advanced widget set. BFD is the Binary File Descriptor Library, and libiberty is a collection of subroutines used by various GNU programs.
Overall, KMD is a well-designed graphical debugger that can quickly load executable formats and provide a range of debugging features. Its compatibility with both serial ports and software emulators, as well as its ability to debug over a network, make it a versatile tool for computer science professionals.
Version 0.9.19: N/A