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
}
 

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.