dwarves is a set of tools to inspect the DWARF debugging information inserted in ELF binaries by compilers such as GCC, and which are used by well-known debuggers such as GDB and more recent ones such as systemtap. With pahole, the struct packing and cacheline efficiency can be inspected.
The SimulAVR program is a simulator for the Atmel AVR family of microcontrollers (ATtiny and ATmega). SimulAVR can be used either standalone or as a remote target for avr-gdb. There are interfaces for Python and Tcl. When used in gdbserver mode, the simulator is used as a back-end so that avr-gdb can be used as a source level debugger for AVR programs.
CollectionSpy is a Java profiler that focuses on tracking and analyzing your program's usage of Collection Framework containers. It detects hashing container (e.g. HashMap) corruption due to mutating keys. It tracks expensive internal rehashing of containers whose capacity needs expanding. It detects multithreaded access to any unsynchronized container (e.g. HashMap, ArrayList). It visualizes hashing container bucket list lengths, allowing you to diagnose worst-case access performance.
LMDBG is a collection of small tools for collecting and analyzing the logs of malloc/realloc/memalign/free function calls. Unlike many others, LMDBG does not provide any way to detect overruns of the boundaries of malloc() memory allocations, as this is not the goal. Like most other malloc debuggers, LMDBG allows detecting memory leaks and double frees. However, unlike others, LMDBG generates full stacktraces and separates the logging process from analysis, thus allowing you to analyze an application on a per-module basis.
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.
DBGMEM is a feature rich memory debugger for C and C++ programs; it currently works for Linux only. It helps you to find problems such as memory leaks, heap memory corruption misuse, illegal arguments to selected standard library functions, stack corruption, and the use of freed or uninitialized heap memory. It is extensible via an API. The tool overrides GLIBC memory allocation functions and memory and string manipulation functions in order to add its features.