drx.h File Reference

Header for DynamoRIO eXtension utilities (drx) More...

Macros

#define DRMGR_PRIORITY_NAME_DRX_FAULT   "drx_fault"
 
#define DRX_FILE_SKIP_OPEN   0x8000
 
#define DRMGR_PRIORITY_NAME_DRX_BUF_INIT   "drx_buf.init"
 
#define DRMGR_PRIORITY_NAME_DRX_BUF_EXIT   "drx_buf.exit"
 

Typedefs

typedef void(* drx_buf_full_cb_t) (void *drcontext, void *buf_base, size_t size)
 
typedef struct _drx_buf_t drx_buf_t
 

Enumerations

enum  { DRMGR_PRIORITY_FAULT_DRX = -7500 }
 
enum  {
  DRX_COUNTER_64BIT = 0x01,
  DRX_COUNTER_REL_ACQ = 0x02,
  DRX_COUNTER_LOCK = 0x10
}
 
enum  { DRX_BUF_FAST_CIRCULAR_BUFSZ = (1 << 16) }
 
enum  {
  DRMGR_PRIORITY_THREAD_INIT_DRX_BUF = -7500,
  DRMGR_PRIORITY_THREAD_EXIT_DRX_BUF = -7500
}
 

Functions

DR_EXPORT bool drx_init (void)
 
DR_EXPORT void drx_exit (void)
 
DR_EXPORT ptr_uint_t drx_reserve_note_range (size_t size)
 
DR_EXPORT bool drx_aflags_are_dead (instr_t *where)
 
DR_EXPORT bool drx_insert_counter_update (void *drcontext, instrlist_t *ilist, instr_t *where, dr_spill_slot_t slot, IF_AARCHXX_OR_RISCV64_(dr_spill_slot_t slot2) void *addr, int value, uint flags)
 
DR_EXPORT bool drx_register_soft_kills (bool(*event_cb)(process_id_t pid, int exit_code))
 
DR_EXPORT size_t drx_instrlist_size (instrlist_t *ilist)
 
DR_EXPORT size_t drx_instrlist_app_size (instrlist_t *ilist)
 
DR_EXPORT file_t drx_open_unique_file (const char *dir, const char *prefix, const char *suffix, uint extra_flags, char *result DR_PARAM_OUT, size_t result_len)
 
DR_EXPORT file_t drx_open_unique_appid_file (const char *dir, ptr_int_t id, const char *prefix, const char *suffix, uint extra_flags, char *result DR_PARAM_OUT, size_t result_len)
 
DR_EXPORT bool drx_open_unique_appid_dir (const char *dir, ptr_int_t id, const char *prefix, const char *suffix, char *result DR_PARAM_OUT, size_t result_len)
 
DR_EXPORT drx_buf_tdrx_buf_create_circular_buffer (size_t buf_size)
 
DR_EXPORT drx_buf_tdrx_buf_create_trace_buffer (size_t buffer_size, drx_buf_full_cb_t full_cb)
 
DR_EXPORT bool drx_buf_free (drx_buf_t *buf)
 
DR_EXPORT void drx_buf_insert_load_buf_ptr (void *drcontext, drx_buf_t *buf, instrlist_t *ilist, instr_t *where, reg_id_t buf_ptr)
 
DR_EXPORT void drx_buf_insert_update_buf_ptr (void *drcontext, drx_buf_t *buf, instrlist_t *ilist, instr_t *where, reg_id_t buf_ptr, reg_id_t scratch, ushort stride)
 
DR_EXPORT bool drx_buf_insert_buf_store (void *drcontext, drx_buf_t *buf, instrlist_t *ilist, instr_t *where, reg_id_t buf_ptr, reg_id_t scratch, opnd_t opnd, opnd_size_t opsz, short offset)
 
DR_EXPORT void * drx_buf_get_buffer_ptr (void *drcontext, drx_buf_t *buf)
 
DR_EXPORT void drx_buf_set_buffer_ptr (void *drcontext, drx_buf_t *buf, void *new_ptr)
 
DR_EXPORT void * drx_buf_get_buffer_base (void *drcontext, drx_buf_t *buf)
 
DR_EXPORT size_t drx_buf_get_buffer_size (void *drcontext, drx_buf_t *buf)
 
DR_EXPORT bool drx_tail_pad_block (void *drcontext, instrlist_t *ilist)
 
DR_EXPORT void drx_buf_insert_buf_memcpy (void *drcontext, drx_buf_t *buf, instrlist_t *ilist, instr_t *where, reg_id_t dst, reg_id_t src, ushort len)
 
DR_EXPORT bool drx_expand_scatter_gather (void *drcontext, instrlist_t *bb, DR_PARAM_OUT bool *expanded)
 

Detailed Description

Header for DynamoRIO eXtension utilities (drx)