D.U.M.A. - Detect Unintended Memory Access (original) (raw)
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)":
- Debugging_DE.pdf Outdated Sites:
- Homepage of project: http://duma.sourceforge.net (this site)
- Project page on SourceForge: http://sourceforge.net/projects/duma
.zip and .tar.gz source archives of the latest version - Project page on Freshmeat: http://freshmeat.net/projects/duma/
subscribe on freshmeat to get announcements of new versions
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.