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).