1 2 # Dr. Memory 3 4 Dr. Memory (www.drmemory.org) is an open-source dynamic memory 5 monitoring tool for Windows, Linux, and Mac. 6 7 ## About Dr. Memory 8 9 Dr. Memory operates on unmodified application binaries running on 10 Windows, Linux, or Mac on commodity x86 and ARM32 (forthcoming) hardware. 11 It is capable of identifying memory-related programming errors including: 12 * accesses of uninitialized memory 13 * accesses to unaddressable memory (heap underflow and overflow) 14 * accesses to freed memory 15 * double frees 16 * memory leaks 17 * handle leaks (on Windows) 18 * GDI API usage errors (on Windows) 19 * accesses to un-reserved thread local storage slots (on Windows) 20 21 ## Using Dr. Memory (Windows only) 22 23 Build your application with debug information and then run it under 24 Dr. Memory. Errors found are printed to the screen, and a summary is 25 shown at the end of the run. 26 27 ### Obtain Dr. Memory 28 29 The Dr. Memory package is provided as a self-extracting archive 30 (DrMemory-Windows-sfx.exe) in tools/drmemory directory, which can be 31 extracted by running command 'DrMemory-Windows-sfx.exe -ounpacked -y'. 32 33 The Dr. Memory release package can be downloaded from 34 https://github.com/DynamoRIO/drmemory/wiki/Downloads. 35 36 Nightly builds can be downloaded from 37 https://build.chromium.org/p/client.drmemory/builds/. 38 39 The Dr. Memory source code can be found at 40 https://github.com/DynamoRIO/drmemory. 41 42 ### Run your application with Dr. Memory 43 44 To run your application with Dr. Memory, simply put 'drmemory.exe --' 45 before the command that invokes the application. 46 47 * Running pdfium_unittests with Dr. Memory: 48 tools\drmemory\unpaced\bin\drmemory.exe -- out\Debug\pdfium_unittests.exe 49 50 * Running pdfium_tests with Dr. Memory: 51 tools\drmemory\unpaced\bin\drmemory.exe -- out\Debug\pdfium_tests.exe --png YourInputPDF.pdf 52 53 ### Run test suite with Dr. Memory 54 55 A set of scripts are provided to run PDFium test suite with Dr. Memory 56 on buildbots, which can also be used for running test suite locally. 57 58 * Running pdfium_unittests with Dr. Memory: 59 tools\drmemory\scripts\pdfium_tests.bat -t pdfium_unittests 60 61 * Running pixel test suite with Dr. Memory: 62 tools\drmemory\scripts\pdfium_tests.bat -t pdfium_pixel 63 64 ## Documentation 65 66 Command 'drmemory.exe -help' prints a list of Dr. Memory runtime 67 options with short description. 68 69 To view the full documention, point your web browser at 70 http://drmemory.org/docs/. 71 72 73 ## Contact 74 75 This project is provided as-is, with no official support. 76 Use the Dr. Memory Users group at 77 http://groups.google.com/group/drmemory-users/ to ask questions and 78 seek help on using Dr. Memory. 79 80 Dr. Memory's source code and issue tracker live at 81 https://github.com/DynamoRIO/drmemory 82 83 If you would like to submit a patch, you will need to first sign a 84 Contributor License Agreement. 85 See https://github.com/DynamoRIO/drmemory/wiki/Contributing for more 86 information. 87