blob: 942521c7303a542c86cda617486d6bde584d2d9c [file] [log] [blame]
# **********************************************************
# Copyright (c) 2010-2016 Google, Inc. All rights reserved.
# Copyright (c) 2008-2009 VMware, Inc. All rights reserved.
# **********************************************************
# Dr. Memory: the memory debugger
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation;
# version 2.1 of the License, and no later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Library General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
===========================================================================
D O C T O R M E M O R Y
===========================================================================
===========================================================================
What is Dr. Memory?
Dr. Memory is a memory monitoring tool capable of identifying
memory-related programming errors such as accesses of uninitialized memory,
accesses to unaddressable memory (including outside of allocated heap units
and heap underflow and overflow), accesses to freed memory, double frees,
memory leaks, and (on Windows) handle leaks, GDI API usage errors, and
accesses to un-reserved thread local storage slots.
Dr. Memory is based on the DynamoRIO binary translation engine. Dr. Memory
has full support for Windows (XP and higher) and Linux, with preliminary
Mac OSX, Linux/ARM, and Android/ARM support (32-bit only for those three)
available as a Beta release.
Dr. Memory also includes a system call tracing tool for Windows and a
symbol query utility.
===========================================================================
How do I use Dr. Memory?
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.
--------------------------------------------------
Quick start for Linux:
1) g++ -m32 -g -fno-inline -fno-omit-frame-pointer *.cpp -o myapp
2) bin/drmemory -- ./myapp args_to_myapp
--------------------------------------------------
Quick start for Windows:
If you used the installer, it added Dr. Memory to the current user's PATH,
and a fresh shell should find the "drmemory" command:
1) cl /Zi /MT /EHsc /Oy- /Ob0 /Femyapp.exe *.cpp
2) drmemory -- myapp.exe args_to_my_app
--------------------------------------------------
Quick start for Mac:
1) c++ -m32 -g -fno-inline -fno-omit-frame-pointer *.cpp -o myapp
2) bin/drmemory -- ./myapp args_to_myapp
===========================================================================
Full Documentation
If you are viewing this file, you have already successfully unpacked the
Dr. Memory distribution archive. To view the documention, point your web
browser at the drmemory/docs/html/index.html file, or online 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.
===========================================================================