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.
Project Release infomations and Project Resources. Note that these informations are from this projects Freecode.com page and the downloads themselves may not be hosted with SourceForge.JP.
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.
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.
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.