DUMA (Detect Unintended Memory Access) stops your program on the exact instruction that overruns (or underruns) a malloc() memory buffer. GDB will then display the source-code line that causes the bug. It works by using the virtual-memory hardware to create a red-zone at the border of each buffer: touch that, and your program stops. It can catch formerly impossible-to-catch overrun bugs. DUMA is a fork of Bruce Perens' Electric Fence library.
|Tags||Software Development Debuggers Libraries Testing|
|Operating Systems||POSIX BSD FreeBSD Windows Cygwin Linux Unix Solaris|
Release Notes: This release implements an alternative locking mechanism using critical sections on Win32. It adds Windows Threading to testmt.c. It uses WIN32_SEMAPHORES on Win32-Cygwin. It fixes CreateSemaphore() counts on Win32. It fixes a race condition when using macro delete. It has a bugfix in strncpy(): error check was too rigorous.
Release Notes: The switch DUMA_ALLOW_MALLOC_0 has been removed. The switches DUMA_MALLOC_0_STRATEGY and DUMA_NEW_0_STRATEGY have been added, and now the allocator for size zero is ANSI/C++ standard compliant. Most compiler warnings have been removed. A suggestion for ~/.gdbinit and a hint on mprotectFailed() have been added. The README has been updated.
Release Notes: There is a major bugfix for a hang of the testoperators test case on 64-bit Linux platforms (x86_64 and MIPS64).
Release Notes: This release adds the environment variable 'DUMA_CHECK_FREQ' to autmatically check all memory no man's land at each n'th allocation/deallocation. n=0 to deactivate automatic checks. README.txt has been updated.
Release Notes: A major bugfix in thread safety.