| # 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. |