REC is a portable reverse engineering compiler, or decompiler. It reads an executable file and attempts to produce a C-like representation of the code and data used to build it. It can decompile 386, 68k, PowerPC, and MIPS R3000 programs. It recognizes the following file formats: ELF (System V Rel. 4, e.g. Linux, Solaris, etc.), COFF (System V Rel. 3.x, e.g. SCO), PE (Win32 .EXE and .DLL for Microsoft Windows 95 and NT), AOUT (BSD derivatives, e.g. SunOS 4.x), Playstation PS-X (MIPS target only), and raw binary data (via .cmd files).
Linice is a source-level kernel debugger for x86 systems with the look and feel of SoftIce for MS Windows. It is designed for people who are already familiar with SoftIce, but anyone can quickly get used to it. It can break into a running kernel at any time using a hotkey and supports breakpoints and single step on modules, the kernel, or user programs. It supports the VGA frame buffer, the X Window System, serial connections, and monochrome adapters.
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.
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.