# Dr. Memory Dr. Memory (www.drmemory.org) is an open-source dynamic memory monitoring tool for Windows, Linux, and Mac. ## About Dr. Memory Dr. Memory operates on unmodified application binaries running on Windows, Linux, or Mac on commodity x86 and ARM32 (forthcoming) hardware. It is capable of identifying memory-related programming errors including: * accesses of uninitialized memory * accesses to unaddressable memory (heap underflow and overflow) * accesses to freed memory * double frees * memory leaks * handle leaks (on Windows) * GDI API usage errors (on Windows) * accesses to un-reserved thread local storage slots (on Windows) ## Using Dr. Memory (Windows only) Build your application with debug information and then run it under Dr. Memory. Errors found are printed to the screen, and a summary is shown at the end of the run. ### Obtain Dr. Memory The Dr. Memory package is provided as a self-extracting archive (DrMemory-Windows-sfx.exe) in tools/drmemory directory, which can be extracted by running command 'DrMemory-Windows-sfx.exe -ounpacked -y'. The Dr. Memory release package can be downloaded from https://github.com/DynamoRIO/drmemory/wiki/Downloads. Nightly builds can be downloaded from https://build.chromium.org/p/client.drmemory/builds/. The Dr. Memory source code can be found at https://github.com/DynamoRIO/drmemory. ### Run your application with Dr. Memory To run your application with Dr. Memory, simply put 'drmemory.exe --' before the command that invokes the application. * Running pdfium_unittests with Dr. Memory: tools\drmemory\unpaced\bin\drmemory.exe -- out\Debug\pdfium_unittests.exe * Running pdfium_tests with Dr. Memory: tools\drmemory\unpaced\bin\drmemory.exe -- out\Debug\pdfium_tests.exe --png YourInputPDF.pdf ### Run test suite with Dr. Memory A set of scripts are provided to run PDFium test suite with Dr. Memory on buildbots, which can also be used for running test suite locally. * Running pdfium_unittests with Dr. Memory: tools\drmemory\scripts\pdfium_tests.bat -t pdfium_unittests * Running pixel test suite with Dr. Memory: tools\drmemory\scripts\pdfium_tests.bat -t pdfium_pixel ## Documentation Command 'drmemory.exe -help' prints a list of Dr. Memory runtime options with short description. To view the full documention, point your web browser at http://drmemory.org/docs/. ## Contact This project is provided as-is, with no official support. Use the Dr. Memory Users group at http://groups.google.com/group/drmemory-users/ to ask questions and seek help on using Dr. Memory. Dr. Memory's source code and issue tracker live at https://github.com/DynamoRIO/drmemory If you would like to submit a patch, you will need to first sign a Contributor License Agreement. See https://github.com/DynamoRIO/drmemory/wiki/Contributing for more information.