DynamoRIO / DynamoRIO/dynamorio

Add non-module support to offline traces

Open
#2,062 10 comments 0 reactions 1 assignee Claimed by @derekbruening View on GitHub
Component-DrMemtrace Component-DRTool Type-Feature
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

Split from #1729

What about DGC from a JIT, or vsyscall?

We need to store the type (read/write/prefetch*) and size for a memref, and
the size of every single ifetch.

For memrefs, we may have to use double entries, with the first one having
an escape type and the address and the second having the full type and
size.

For ifetch, perhaps we can fit multiple sizes in one entry. Modidx will be
a sentinel, so we have the 45 modoffs bits. We will want 4 bits for each
instr size (ok to assume 16-byte max instr, even though technically there
can be 17 and an illegal instr could be even bigger) so we can fit the
sizes of 11 instrs there. We'll zero the rest.

The vdso shows up as a module but is harder to decode.
We have two choices for vdso:
1) Treat as non-module and record type info in the trace. The tracer will need
to look for "[vdso]" which will require changing drmodtrack.
2) Assume raw2trace is run on a machine w/ the same vdso code and try to
decode from its own vdso via special code in raw2trace.

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.