API Usage Tutorial

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