DynamoRIO / DynamoRIO/dynamorio

Add fast-forward feature to skip N instructions in drmemtrace analysis tools

Open
#5,538 3 comments 0 reactions 0 assignees View on GitHub
Component-DrMemtrace Type-Feature
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

This is a feature request to make it easier to simulate a subset of a long
trace. Today, this would be done by running a trace splitter offline. The
proposal is to support skipping forward N instructions by seeking in the
trace file, to make it usable online during simulation.

The records are fixed-size, but the instruction type density is not
uniform, so we'd have to do something like embed markers with instruction
counts every N records so the seeking can find the proper instruction
boundary. We could limit the fast-forward jumps to every N instructions.

There are several features which may not interact well with this feature,
where we want to only emit non-changing data once early in the trace and
assume a trace reader can cache the data:

- Instruction encodings (#5520) only included for the first dynamic instance of a static
instruction, to save space. One solution is to re-emit these at the fast-foward
point.

- Physical address translation markers (#4014), which are only emitted on the first
instance of a new page (or when mappings change, if that can be detected).
Again, a solution would be to re-emit these at the fast-forward "checkpoints".

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.