Dynamic Memory Debugging

The Oracle Solaris OS and Oracle Developer Studio software contain tools for finding and eliminating errors in dynamic memory use.

Oracle Solaris tools for debugging dynamic memory include the following:

  • watchmalloc is a debugging memory allocator library. For more information, see the watchmalloc(3MALLOC) man page.

  • libumem is a memory management library. You can use libumem to detect memory management bugs. libumem is a user space slab allocation library, which performs object caching that results in caching the frequently allocated and freed memory. Object caching reduces the overhead of creating and releasing the memory. You can view the information about memory cache, memory allocation, and memory corruption using Modular Debugger (MDB). For information about modular debugger, see Oracle Solaris Modular Debugger Guide.

  • You can also use the libadimalloc library on platforms that support ADI. The functions in the libadimalloc library provide scalable object-caching memory allocation with multithreaded application support. Also, this library uses ADI to detect buffer overrun errors, out-of-bounds pointer errors, stale pointer errors, and use-after-free errors. For more information, see the libadimalloc(3LIB) man page.

The Oracle Developer Studio tools for debugging dynamic memory include the following:

Oracle Developer Studio is available on as a package to download and install on the Oracle Solaris OS. For more information, see the Download Options for Oracle Developer Studio.