drsyms.h File Reference

Header for DRSyms DynamoRIO Extension. More...

Data Structures

struct  _drsym_info_t
 
struct  _drsym_type_t
 
struct  _drsym_func_type_t
 
struct  _drsym_compound_type_t
 
struct  _drsym_int_type_t
 
struct  _drsym_ptr_type_t
 
struct  _drsym_line_info_t
 

Typedefs

typedef struct _drsym_info_t drsym_info_t
 
typedef struct _drsym_type_t drsym_type_t
 
typedef struct _drsym_func_type_t drsym_func_type_t
 
typedef struct _drsym_compound_type_t drsym_compound_type_t
 
typedef struct _drsym_int_type_t drsym_int_type_t
 
typedef struct _drsym_ptr_type_t drsym_ptr_type_t
 
typedef bool(* drsym_enumerate_cb) (const char *name, size_t modoffs, void *data)
 
typedef bool(* drsym_enumerate_ex_cb) (drsym_info_t *info, drsym_error_t status, void *data)
 
typedef struct _drsym_line_info_t drsym_line_info_t
 
typedef bool(* drsym_enumerate_lines_cb) (drsym_line_info_t *info, void *data)
 

Enumerations

enum  drsym_error_t {
  DRSYM_SUCCESS ,
  DRSYM_ERROR ,
  DRSYM_ERROR_INVALID_PARAMETER ,
  DRSYM_ERROR_INVALID_SIZE ,
  DRSYM_ERROR_LOAD_FAILED ,
  DRSYM_ERROR_SYMBOL_NOT_FOUND ,
  DRSYM_ERROR_LINE_NOT_AVAILABLE ,
  DRSYM_ERROR_NOT_IMPLEMENTED ,
  DRSYM_ERROR_FEATURE_NOT_AVAILABLE ,
  DRSYM_ERROR_NOMEM ,
  DRSYM_ERROR_RECURSIVE
}
 
enum  drsym_flags_t {
  DRSYM_LEAVE_MANGLED = 0x00 ,
  DRSYM_DEMANGLE = 0x01 ,
  DRSYM_DEMANGLE_FULL = 0x02 ,
  DRSYM_DEMANGLE_PDB_TEMPLATES = 0x04 ,
  DRSYM_FULL_SEARCH = 0x08 ,
  DRSYM_DEFAULT_FLAGS = DRSYM_DEMANGLE
}
 
enum  drsym_debug_kind_t {
  DRSYM_SYMBOLS = (1 << 0) ,
  DRSYM_LINE_NUMS = (1 << 1) ,
  DRSYM_ELF_SYMTAB = (1 << 8) ,
  DRSYM_DWARF_LINE = (1 << 9) ,
  DRSYM_PDB = (1 << 10) ,
  DRSYM_PECOFF_SYMTAB = (1 << 11) ,
  DRSYM_MACHO_SYMTAB = (1 << 12)
}
 
enum  {
  DRSYM_TYPE_OTHER ,
  DRSYM_TYPE_INT ,
  DRSYM_TYPE_PTR ,
  DRSYM_TYPE_FUNC ,
  DRSYM_TYPE_VOID ,
  DRSYM_TYPE_COMPOUND ,
  DRSYM_TYPE_ARRAY
}
 

Functions

DR_EXPORT drsym_error_t drsym_init (IF_WINDOWS_ELSE(const wchar_t *, int) shmid)
 
DR_EXPORT drsym_error_t drsym_exit (void)
 
DR_EXPORT drsym_error_t drsym_lookup_address (const char *modpath, size_t modoffs, drsym_info_t *info, uint flags)
 
DR_EXPORT drsym_error_t drsym_get_type (const char *modpath, size_t modoffs, uint levels_to_expand, char *buf, size_t buf_sz, drsym_type_t **type)
 
DR_EXPORT drsym_error_t drsym_get_type_by_name (const char *modpath, const char *type_name, char *buf, size_t buf_sz, drsym_type_t **type)
 
DR_EXPORT drsym_error_t drsym_get_func_type (const char *modpath, size_t modoffs, char *buf, size_t buf_sz, drsym_func_type_t **func_type)
 
DR_EXPORT drsym_error_t drsym_expand_type (const char *modpath, uint type_id, uint levels_to_expand, char *buf, size_t buf_sz, drsym_type_t **expanded_type)
 
DR_EXPORT drsym_error_t drsym_lookup_symbol (const char *modpath, const char *symbol, size_t *modoffs, uint flags)
 
DR_EXPORT drsym_error_t drsym_enumerate_symbols (const char *modpath, drsym_enumerate_cb callback, void *data, uint flags)
 
DR_EXPORT drsym_error_t drsym_enumerate_symbols_ex (const char *modpath, drsym_enumerate_ex_cb callback, size_t info_size, void *data, uint flags)
 
DR_EXPORT size_t drsym_demangle_symbol (char *dst, size_t dst_sz, const char *mangled, uint flags)
 
DR_EXPORT drsym_error_t drsym_get_module_debug_kind (const char *modpath, drsym_debug_kind_t *kind)
 
DR_EXPORT drsym_error_t drsym_module_has_symbols (const char *modpath)
 
DR_EXPORT drsym_error_t drsym_search_symbols (const char *modpath, const char *match, bool full, drsym_enumerate_cb callback, void *data)
 
DR_EXPORT drsym_error_t drsym_search_symbols_ex (const char *modpath, const char *match, uint flags, drsym_enumerate_ex_cb callback, size_t info_size, void *data)
 
DR_EXPORT drsym_error_t drsym_free_resources (const char *modpath)
 
DR_EXPORT drsym_error_t drsym_enumerate_lines (const char *modpath, drsym_enumerate_lines_cb callback, void *data)
 

Detailed Description

Header for DRSyms DynamoRIO Extension.