Skip to main content

dr_insert_mbr_instrumentation

Function dr_insert_mbr_instrumentation 

Source
pub unsafe extern "C" fn dr_insert_mbr_instrumentation(
    drcontext: *mut c_void,
    ilist: *mut instrlist_t,
    instr: *mut instr_t,
    callee: *mut c_void,
    scratch_slot: dr_spill_slot_t,
)
Expand description

Assumes that \p instr is an indirect branch. Inserts into \p ilist prior to \p instr instruction(s) to call callee passing two arguments: -# address of branch instruction -# target address of branch \note Only the address portion of a far indirect branch is considered. \note \p scratch_slot must be <= dr_max_opnd_accessible_spill_slot(). \p scratch_slot is used internally to this routine and will be clobbered. \note Sets #DR_CLEANCALL_READS_APP_CONTEXT and #DR_CLEANCALL_WRITES_APP_CONTEXT. Conditionally skipping the instrumentation inserted by this routine is not supported (i.e., #DR_CLEANCALL_MULTIPATH is not supported here).