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.
Memcheck provides the ability to fault on pointer overrun (read or write) or freed pointer deference (read or write), logs double free and realloc of already freed pointers and memory not freed on exit, checks for pointer underrun on free and realloc, optionally reverses the behavior of overrun and underrun, "churns" reallocations to always return a different pointer, and logs pointer overruns instead of faulting. It has a very small performance impact, with the tradeoff of a large memory footprint. It includes a validation test suite to verify correctness of the library. It is tested on a variety of architectures, including Alpha, ARM, HPPA, PPC, ix86, IA64, rs6000, S390, SPARC, and SPARC64. It is tested on a variety of platforms, including OSF, FreeBSD, NetBSD, OpenBSD, Linux, HP/UX, Mac OSX, AIX, SCO, and Solaris.
python-ptrace is a debugger using ptrace written in Python. It's able to control multiple processes, read/write bytes, perform breakpoint and step by step execution, use a disassembler, syscall tracer, and parser, explain why a signal is raised, dump registers, stack, and memory mappings, etc.
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.
scanmem is a simple interactive debugging utility for Linux that can be used to locate the address of a variable in an executing program. scanmem can then be used to modify the variable once, or continually over a period of time. It is similar to the "pokefinders" used to cheat at video games.
SMATCH is a neat program designed to locate programming errors in any open source software project. Right now it is actively used to screen out errors inside the Linux kernel. There are two main parts to Smatch. The first is a patch to the gcc sources to screen out a lot of useful information. The second part is a collection of Perl scripts and libraries to analyze the information and report the findings.