Dr. Memory 是一款内存监控工具,能够识别与内存相关的编程错误,例如访问未初始化内存、访问不可寻址内存(包括分配的堆单元之外以及堆下溢和堆上溢)、访问已释放内存、双重释放、内存泄漏,以及(在 Windows 上)句柄泄漏、GDI API 使用错误和访问未预留的线程局部存储槽。
Dr. Memory 可直接运行于 Windows、Linux、Mac 或 Android 系统上未经修改的应用程序二进制文件,支持 IA-32、AMD64 和 ARM 硬件平台。
Dr. Memory 采用 LGPL 许可证发布,二进制包可下载。
Dr. Memory 基于 DynamoRIO 动态插桩工具平台 构建。
Dr. Memory 比同类工具(包括 Valgrind)更快,如我们在 CGO 2011 论文《使用 Dr. Memory 进行实用内存检查》(Practical Memory Checking with Dr. Memory)中所示。我们在 Linux 上使用 SPECCPU 2006 基准测试套件对这两个工具进行了比较:
(Valgrind 无法运行 434.zeusmp 和 447.dealII。)
文档包含在发布包中。我们还在线维护了一份副本供在线浏览。
Dr. Memory 包中包含一个名为 drstrace 的 “Windows 版 strace” 工具。
Dr. Memory 拥有自己的讨论列表。
如需报告错误,请使用问题跟踪器。