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.
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.
spim is a self-contained software simulator for running R2000/R3000 assembly language programs. It reads and can immediately execute files containing assembly language code. spim also provides a debugger and simple set of operating system services. spim provides both a simple, textual interface and a fancier, graphical interface. The package includes complete source code and documentation.