D.U.M.A. - Detect Unintended Memory Access
DUMA is an open-source library (under GNU General Public License) to detect buffer overruns and under-runs in C and C++ programs.
This library is a fork of Buce Perens Electric Fence library
and adds some new features to it.
Features of the DUMA library:
Following documents are available (also in the source archives):
Following article was printed in the magazine "Programmieren unter Linux 1/2005 (1)":
- "overloads" all standard memory allocation functions like malloc(), calloc(), memalign(), strdup(), operator new, operator new
and also their counterpart deallocation functions like free(), operator delete and operator delete
- utilizes the MMU (memory management unit) of the CPU:
allocates and protects an extra memory page to detect any illegal access beyond the top of the buffer
(or bottom, at the user's option)
- stops the program at exactly that instruction, which does the erroneous access to the protected memory page,
allowing location of the defectice source code in a debugger
- detects erroneous writes at the non-protected end of the memory block at deallocation of the memory block
- detects mismatch of allocation/deallocation functions: f.e. allocation with malloc() but deallocation with operator delete
- leak detection: detect memory blocks which were not deallocated until program exit
- runs on Linux / U*ix and MS Windows NT/2K/XP operating systems
- preloading of the library on Linux (and some U*ix) systems allowing tests without necessity of changing source code or recompilation
Comments, suggestions and bug-reports go to
Hayati Aygün <firstname.lastname@example.org>
Thanks to SourceForge for hosting!