The Official NJAMD site
is at Sourceforge. If you are interested in doing development for NJAMD, I suggest you check
out the task list, as
well as the developer
documentation. There are also now two NJAMD
mailing lists that
you can subscribe to or view the archives online.
A malloc debugger is usually a drop-in replacement for standard libc
malloc and friends. Normally, when a program does something illegal with its
dynamic memory (such as writing past the end of a buffer returned by
malloc(3), ie: an overflow), its execution may not immediately terminate.
Instead, bizarre and unexpected results can occur later on during
program execution. This is due to the fact that malloc implementations store
book keeping information before and after allocated segments. So overwriting
these regions won't cause your program to crash right away, but will
cause chaos during subsequent malloc requests, or even during usage of
memory returned from otherwise seemingly valid malloc()
Malloc debuggers change all this by mapping protected memory before or
after your buffer, so your program crashes immediately after an overflow.
Currently, there are about a dozen freely available
malloc debuggers, with new ones popping up every day. However, frustrated
with other malloc debuggers, I went above and beyond to create
NJAMD: Not Just Another Malloc Debugger.
NJAMD sets out to pick up where other malloc debuggers left off. That is,
it protects against all common dynamic memory bugs, including overflow,
underflow, writes to freed memory, and memory leaks, all without
recompiling or even relinking your executable. In addition, it is able to
trace memory leaks even through arbitrary library functions that wrap
malloc(3), such as strdup(3), GUI widget allocators, and even C++ new and
delete.
Current available malloc debuggers are bloated and slow, and/or require a
lengthy recompile of your entire project. NJAMD is fast enough for everyday
use, and light enough to debug most apps. (Large apps, such as the gimp, will
require a ram-heavy development machine).
* Some features are not present on all platforms
Glad you asked! The following documentation is available:
News
Description
Features*
How it Works