DynamoRIO
|
#include <dr_events.h>
Data Fields | |
void * | tag |
byte * | cache_start_pc |
bool | is_trace |
bool | app_code_consistent |
instrlist_t * | ilist |
Detailed Description
Data structure passed within dr_exception_t, dr_siginfo_t, and dr_restore_state_info_t. Contains information about the code fragment inside the code cache at the exception/signal/translation interruption point.
Field Documentation
◆ app_code_consistent
bool _dr_fault_fragment_info_t::app_code_consistent |
Indicates whether the original application code containing the code corresponding to the exception/signal/translation interruption point is guaranteed to still be in the same state it was when the code was placed in the code cache. This guarantee varies depending on the type of cache consistency being used by DR.
◆ cache_start_pc
byte* _dr_fault_fragment_info_t::cache_start_pc |
The start address of the code fragment inside the code cache at the exception/signal/translation interruption point. NULL for interruption not in the code cache (in which case generally only unusual cases of clients changing memory require restoration). Clients are cautioned when examining code cache instructions to not rely on any details of code inserted other than their own.
◆ ilist
instrlist_t* _dr_fault_fragment_info_t::ilist |
The recreated ilist for this fragment, which contains instrs added by the basic block event(s) with translating
set to true and also DR's own mangling of some instrs. This includes client-added metadata in the form of notes and label instrs too. This may be helpful in restoring app state on a fault. When the recreated ilist is not available, this is set to NULL. This may happen when a client returns DR_EMIT_STORE_TRANSLATIONS, or for DR internal reasons when the app code may not be consistent: for pending deletion or self-modifying fragments. It will also be NULL for non-code-cache cases where cache_start_pc
is also NULL.
◆ is_trace
bool _dr_fault_fragment_info_t::is_trace |
Indicates whether the interrupted code fragment is a trace
◆ tag
void* _dr_fault_fragment_info_t::tag |
The tag of the code fragment inside the code cache at the exception/signal/translation interruption point. NULL for interruption not in the code cache.
The documentation for this struct was generated from the following file:
- /home/runner/work/dynamorio/dynamorio/build_release-64/include/dr_events.h