The debug memory allocation, or dmalloc, library has been designed as a drop-in replacement for the system's malloc(), realloc(), calloc(), free(), and other memory management routines while providing powerful debugging facilities configurable at run-time. These facilities include such things as memory leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics.