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