Debugtrace is a tool for printing execution traces that are helpful for debugging. It can generate instruction or call traces. It shows every instruction as it is executed, the values of registers that are written, and the memory that is read and written. It uses instrumentation rather than the debugging API, so it is much faster than doing the same thing with gdb. You can customize it to your own debugging needs. The tool works on Linux ARM, IA32, and EM64T.
J51 is a Intel MCS51 emulator with all the standard integrated peripherals. A disassembler with an integrated debugger is also included. Standard peripherals emulated are Timer 0/1 (Mode 0, 1, 2, and interrupts), serial interface in polled and interrupt mode, standard I/O, and ports 0 to 4. Microprocessors emulated are the Intel MCS 8051 (no peripherals), Intel 8051, Intel 8052, Philips LPC674, and Philips LPc900.
KMD is a multi-processor debugger. It can debug with hardware boards over serial ports or with software emulators (ARM and MIPS emulators are included in the project). Using the pipe option you can debug over the network or any other communication medium. It can load many executable formats such as ELF, and display and follow the original source even from multiple source file programs. There is support for breakpoints and watchpoints which can trap on specific data (such as loading or executing specific instructions). Support for other features such as FPGA's is also available, allowing loading or any control required to drive a specific hardware device. The project uses chump to allow disassembly and line assembly. Chump also allows new architectures to be easily added without the need to recompile the system. Communication with the backend is done using two pipes/fifos using a simple set of codes. Back end communication program can be created using very little memory on the target device.
Fenris is a multipurpose tracer, debugger, and code analysis tool that detects and documents high-level language constructions, can recover symbols, graph program execution flow, detect internal functions, recover symbol tables, and deal with anti-debugging protection. It features a command-line interface as well as a SoftICE-alike GUI and Web frontend.
Chump is a table-driven assembler and dissembler with a very fast new architecture input format. Both the assembler and disassembler are created using a single description. It comes with descriptions for ARM, MIPS, Stump, and 6809. It is intended for use as a library compiled with other programs to allow line assembly and disassembly.
DIOTA is a just-in-time instrumentation tool for Intel binaries. It allows you to create a dynamic loadable library that can be attached to a program running under Linux. DIOTA can instrument all memory operations in the application and the used libraries (e.g., for checking for faulty memory accesses), calls of dynamically linked procedures (malloc, printf, etc.), detect the code executed during a particular run, and more.