DynamoRIO / DynamoRIO/dynamorio

Handle TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION in Public Traces

Open
#7,155 0 comments 0 reactions 0 assignees View on GitHub
Component-DRTool help wanted Type-Feature
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

In future version of public traces (i.e., Google workload traces destined to public release) we want to preserve `TRACE_MARKER_TYPE_UNCOMPLETED_INSTRUCTION` markers in the resulting public trace.

This marker has as value the partial encoding of the uncompleted instruction.
Partial encoding does not allow us to generate an instr_t that we can then convert with `instr_convert_to_isa_regdeps()`, so we first need to retrieve the full encoding of the uncompleted instruction.
If we have the binary, the full encoding should be always be the instruction fetch at next PC, and if prior is branch we should have the target.
Another issue we need to solve is that a marker value can only contain up to 8 byte (in 64 bit arches) or a pointer-size amount of partial encoding, while DR_ISA_REGDEPS instruction encodings can be larger than that.

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.