Get started with Arm Instruction Emulator
A series of simple examples to demonstrate how to compile SVE code, run the resulting executable and analyze runtime behavior with Arm Instruction Emulator.Get started
Analyze SVE Programs
Use a basic instrumentation client to perform runtime analysis on your high-performance application.. This enables you to gain insights into your application's execution behavior and identify heavily-used loops and instruction sequences.Learn more
Instrumentation client structure
The basic structure of an instrumentation client, including the main events that occur during execution and what happens in each event.Learn more
Build Custom Analysis Instrumentation
How to modify the instrumentation of an existing client, then build and execute the modified client with Arm Instruction Emulator.Learn more
View the DynamoRIO command
Use the -s or --show-drrun-cmd option when running ArmIE on a binary, to output the full DynamoRIO drrun command that ArmIE uses.Learn more
Build an emulation-aware client
Learn how to modify the existing native-only clients to also handle emulated instructions, and to write emulation aware clients of your own.Learn more
- For more advanced analysis examples of a real-world application, see Emulating SVE on existing Armv8-A hardware using DynamoRIO and ArmIE.
- Source code for the instrumentation clients is provided with the Arm Instruction Emulator build, in the samples directory:
/path/to/your/arm-instruction-emulator-<xx.y>_Generic-AArch64_<OS>_aarch64-linux/samples/The files in this directory are
memtrace_simple.c.You can modify and enhance these for your specific analysis. See Building Custom Analysis Instrumentation for instructions on how to do this.
- Further resources are available to help you learn about ArmIE. Refer to the SVE Hackathon SC18 page.