Below we provide a few short tutorials on using the DynamoRIO API to write several clients.
- A client that tracks the average dynamic basic block size demonstrating some simple instrumentation : average_bb_size.
- A client that steals a register from the application demonstrating some simple state translation : steal_reg.
- A client that adjusts prefetch instructions demonstrating some simple app modifications : prefetch.
The following tutorial additionally shows how to create a new annotation to support a client-specific feature.
- A new annotation for a hypothetical memory usage client. The annotation marks any specified memory region as defined, even when the client analysis shows it is undefined : create_annotation