DynamoRIO
|
#include <memref.h>
Data Fields | |
uint8_t | _raw_bytes [MEMREF_T_SIZE_BYTES] |
struct _memref_data_t | data |
struct _memref_instr_t | instr |
struct _memref_flush_t | flush |
struct _memref_thread_exit_t | exit |
struct _memref_marker_t | marker |
Detailed Description
Each trace entry is one of the structures in this union. Each entry identifies the originating process and thread. Although the pc of each data reference is provided, the trace also guarantees that an instruction entry immediately precedes the data references that it is responsible for, with no intervening trace entries (unless it is a trace filtered with an online first-level cache). Offline traces further guarantee that an instruction entry for a branch instruction is always followed by an instruction entry for the branch's target (with any memory references for the branch in between of course) without a thread switch intervening, to make it simpler to identify branch targets (again, unless the trace is filtered by an online first-level cache). Online traces do not currently guarantee this.
Note that memref_t is not initialized by default. The _raw_bytes array is added to the union as its first member to make sure a memref_t object can be fully initialized if desired, for example memref_t memref = {};
.
Field Documentation
◆ _raw_bytes
uint8_t dynamorio::drmemtrace::_memref_t::_raw_bytes[MEMREF_T_SIZE_BYTES] |
Do not use: for init only.
◆ data
struct _memref_data_t dynamorio::drmemtrace::_memref_t::data |
A data load or store.
◆ exit
struct _memref_thread_exit_t dynamorio::drmemtrace::_memref_t::exit |
A thread exit.
◆ flush
struct _memref_flush_t dynamorio::drmemtrace::_memref_t::flush |
A software-initiated cache flush.
◆ instr
struct _memref_instr_t dynamorio::drmemtrace::_memref_t::instr |
An instruction fetch.
◆ marker
struct _memref_marker_t dynamorio::drmemtrace::_memref_t::marker |
A marker holding metadata.
The documentation for this union was generated from the following file:
- /home/runner/work/dynamorio/dynamorio/build_release-64/clients/include/drmemtrace/memref.h