GSoC/GCI Archive
Google Summer of Code 2014

Dr. Memory

License: GNU Library or "Lesser" General Public License version 2.0 (LGPLv2)

Web Page:

Mailing List:!forum/dynamorio-users

The Dr. Memory community builds dynamic program analysis tools. Dr. Memory itself is a memory monitoring tool that identifies memory-related programming errors such as accesses of uninitialized memory, heap overflow and underflow, accesses to freed memory, and memory leaks. Dr. Memory operates not only on Linux but also on Windows, providing a key open-source development tool to Windows programmers. Dr. Memory is built on the DynamoRIO dynamic instrumentation tool plaform. A suite of dynamic tools on top of DynamoRIO is being developed by the Dr. Memory team.


  • JIT Optimization with Annotation Support The DynamoRIO cache consistency strategy is not the most efficient for dynamically generated code. To optimize: (1) implement an annotation framework similar to Valgrind's, allowing the target app to specify dynamic code regions; (2) use this information in the optimization from issue #1114: writes to pre-flushed regions are redirected to a writable "view" of the same target address range; (3) extend this optimization to all apps by inferring dynamic code regions from observed app behavior.
  • Run 32-bit Applications in 64-Bit Mode to Improve Dr. Memory Performance Memory tracing tools has higher overhead due to the instrumentation code around actual code which might use temporary registers. In such cases instrumented code save and restore the temporary registers. If we run 32-bit applications in 64-bit mode we can use extra registers in 64-bit mode which do not exists for 32-bit machine as temporary register which will definitely improve performance.
  • System Call Tracing on Windows The main goal of the project is implementing of the DrStrace tool which supports identification of the symbolic names and field details (also with symbolic names) for currently known system calls in the DrMemory and a part of the unknown calls in the Windows 7 x86_64 and x64.