#[repr(transparent)]pub struct dr_emit_flags_t(pub c_uint);Expand description
Flags controlling the behavior of basic blocks and traces when emitted into the code cache. These flags are bitmasks that can be combined by or-ing together. For multiple clients, the flags returned by each client are or-ed together.
Tuple Fields§
§0: c_uintImplementations§
Source§impl dr_emit_flags_t
impl dr_emit_flags_t
Sourcepub const DR_EMIT_DEFAULT: dr_emit_flags_t
pub const DR_EMIT_DEFAULT: dr_emit_flags_t
Emit as normal.
Source§impl dr_emit_flags_t
impl dr_emit_flags_t
Sourcepub const DR_EMIT_STORE_TRANSLATIONS: dr_emit_flags_t
pub const DR_EMIT_STORE_TRANSLATIONS: dr_emit_flags_t
Store translation information at emit time rather than calling the basic block or trace event later to recreate the information. Note that even if a standalone basic block has stored translations, if when it is added to a trace it does not request storage (and the trace callback also does not request storage) then the basic block callback may still be called to translate for the trace.
\sa #dr_register_bb_event()
Source§impl dr_emit_flags_t
impl dr_emit_flags_t
Sourcepub const DR_EMIT_PERSISTABLE: dr_emit_flags_t
pub const DR_EMIT_PERSISTABLE: dr_emit_flags_t
Only valid when applied to a basic block. Indicates that the block is eligible for persisting to a persistent code cache file on disk. By default, no blocks are eligible, as tools must take care in order to properly support persistence. Note that the block is not guaranteed to be persisted if it contains complex features that prevent DR from easily persisting it.
Source§impl dr_emit_flags_t
impl dr_emit_flags_t
Sourcepub const DR_EMIT_MUST_END_TRACE: dr_emit_flags_t
pub const DR_EMIT_MUST_END_TRACE: dr_emit_flags_t
Only valid when applied to a basic block. Indicates that the block must terminate a trace. Normally this should be set when an abnormal exit is used from the block that is incompatible with trace building’s attempt to inline the continuation from the block to its successor. Note that invoking dr_redirect_execution() from a clean call called from a block aborts trace building and thus this flag need not be set for that scenario.
Source§impl dr_emit_flags_t
impl dr_emit_flags_t
Sourcepub const DR_EMIT_GO_NATIVE: dr_emit_flags_t
pub const DR_EMIT_GO_NATIVE: dr_emit_flags_t
Requests that DR relinquish control of the current thread and let it run natively until the client indicates that DR should take over again. While native, on Windows, currently only the thread init event (dr_register_thread_init_event()) will be raised, and nothing on Linux: no events will occur in the native thread. On Windows, DR tries to monitor any actions a native thread might take that affect correct execution from the code cache, but running natively carries risks. Consider this feature experimental, particularly on Linux.
Trait Implementations§
Source§impl BitAnd for dr_emit_flags_t
impl BitAnd for dr_emit_flags_t
Source§impl BitAndAssign for dr_emit_flags_t
impl BitAndAssign for dr_emit_flags_t
Source§fn bitand_assign(&mut self, rhs: dr_emit_flags_t)
fn bitand_assign(&mut self, rhs: dr_emit_flags_t)
&= operation. Read moreSource§impl BitOr for dr_emit_flags_t
impl BitOr for dr_emit_flags_t
Source§impl BitOrAssign for dr_emit_flags_t
impl BitOrAssign for dr_emit_flags_t
Source§fn bitor_assign(&mut self, rhs: dr_emit_flags_t)
fn bitor_assign(&mut self, rhs: dr_emit_flags_t)
|= operation. Read moreSource§impl Clone for dr_emit_flags_t
impl Clone for dr_emit_flags_t
Source§fn clone(&self) -> dr_emit_flags_t
fn clone(&self) -> dr_emit_flags_t
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more