DynamoRIO is a runtime code manipulation system that supports code transformations on any part of a program, while it executes. DynamoRIO gives complete control over the runtime code stream and does not limit transformations to trampoline insertion. DynamoRIO exports an interface for building dynamic tools for a wide variety of uses: program analysis and understanding, profiling, instrumentation, optimization, translation, etc. DynamoRIO provides efficient, transparent, and comprehensive manipulation of an unmodified application running on a stock operating system (Windows or Linux) and commodity IA-32 and AMD64 hardware. See Platform Limitations for supported platforms.
This document describes the DynamoRIO system and the various API's that it exports for building custom tools. It is divided into the following sections: