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:
"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
Following article - in german - was printed in the magazine "Programmieren unter Linux 1/2005 (1)":
This project is no longer developed or maintained by me (Hayati Aygün <h_ayguen@web.de>)
Please have a look at https://github.com/johnsonjh/duma for updates.