19 #ifndef __TARGET_API_H__
20 #define __TARGET_API_H__
145 #define TID_GLOBAL INT32_MAX
171 #define TARGET_TYPE_BITS 5
172 #define TARGET_TYPE_MASK_BASE \
173 (TARGET_TYPE_PTRACE | TARGET_TYPE_XEN | TARGET_TYPE_GDB)
174 #define TARGET_TYPE_MASK_OVERLAY \
175 (TARGET_TYPE_PHP | TARGET_TYPE_OS_PROCESS)
249 #define TSTATUS_MAX TSTATUS_STOPPED
252 #define TSTATUS(n) (((n) <= TSTATUS_MAX) ? TSTATUS_STRINGS[(n)] : NULL)
280 #define THREAD_STATUS_MAX THREAD_STATUS_RETURNING_KERNEL
282 #define THREAD_STATUS_BITS 5
284 #define THREAD_SPECIFIC_STATUS(status) \
285 ((thread_status_t)(status) >= THREAD_STATUS_SLEEPING)
288 #define THREAD_STATUS(n) (((n) <= THREAD_STATUS_RETURNING_KERNEL) \
289 ? THREAD_STATUS_STRINGS[(n)] : NULL)
301 #define THREAD_CTXT_DEFAULT 0
384 #define REGION_TYPE(n) (((n) < __REGION_TYPE_MAX) ? REGION_TYPE_STRINGS[(n)] : NULL)
403 #define POLL(n) (((n) < sizeof(POLL_STRINGS)/sizeof(char *)) \
404 ? POLL_STRINGS[(n)] : NULL)
456 #define APF_WILD (APF_THREAD_ENTRY | APF_THREAD_EXIT | APF_MEMORY | APF_OTHER)
457 #define APF_OS (APF_OS_THREAD_ENTRY | APF_OS_THREAD_EXIT | APF_OS_MEMORY \
459 #define APF_PROCESS (APF_PROCESS_THREAD_ENTRY | APF_PROCESS_THREAD_EXIT \
460 | APF_PROCESS_MEMORY | APF_PROCESS_OTHER)
461 #define APF_APP (APF_APP_THREAD_ENTRY | APF_APP_THREAD_EXIT \
462 | APF_APP_MEMORY | APF_APP_OTHER)
463 #define APF_ALL (APF_WILD | APF_OS | APF_PROCESS | APF_APP)
506 int argc,
char **argv,
558 int argc,
char **argv,
561 GList **base_target_specs,
562 GList **overlay_target_specs);
567 int *argc,
char ***argv);
649 GList *base_target_specs,
650 GList *overlay_target_specs,
652 GList **error_specs);
693 GList **error_specs);
926 (
void (*sighandler)(
int signo,siginfo_t *siginfo,
void *x));
957 void (*sighandler)(
int signo,siginfo_t *siginfo,
void *x));
1109 unsigned long length,
unsigned char *
buf);
1117 unsigned long length,
unsigned char *
buf);
1121 unsigned long length,
unsigned char *
buf);
1123 unsigned long length,
unsigned char *
buf);
1301 char *buf,
int bufsiz,
1302 int detail,
char *sep,
char *key_val_sep);
1316 unsigned char *code,
unsigned long code_len);
1366 ADDR *start,
ADDR *end,
void **data);
1368 ADDR *start,
ADDR *end,
void **data);
1371 int nocache,
int force_copy,
int *caller_free);
1403 const char *name,
const char *delim,
1407 const char *name,
const char *delim);
1412 char *filename,
int line,
1415 char *filename,
ADDR addr);
1456 char *member,
const char *delim);
1478 const char *member,
const char *delim,
1482 struct value *old_value,
1483 const char *member,
const char *delim,
1539 struct symbol **datatype_saveptr,
1657 char **old_buf,
int *old_bufsiz,value_hash_t *old_vhash);
1677 #define VLS(target,tlctxt,varstr,loadflags,outvarptr,outvalueptr,errlabel) \
1679 struct value *_outvalue; \
1680 void *__outvar = (outvarptr); \
1681 struct bsymbol *_varsym; \
1682 _varsym = target_lookup_sym((target),(varstr),NULL,NULL, \
1683 SYMBOL_TYPE_NONE); \
1687 _outvalue = target_load_symbol((target),(tlctxt),_varsym, \
1689 bsymbol_release(_varsym); \
1693 if ((int)sizeof(*(outvarptr)) < _outvalue->bufsiz) { \
1694 verror("outvar size %u smaller than outvalue len %d\n", \
1695 (unsigned)sizeof(*(outvarptr)),_outvalue->bufsiz); \
1696 value_free(_outvalue); \
1699 memcpy(outvarptr,_outvalue->buf, \
1700 ((int)sizeof(*(outvarptr))) > _outvalue->bufsiz \
1701 ? _outvalue->bufsiz : (int)sizeof(*(outvarptr)));\
1704 *(struct value **)(outvalueptr) = _outvalue; \
1706 value_free(_outvalue); \
1708 #define VL(target,tlctxt,invalue,varstr,loadflags,outvalueptr,errlabel) \
1710 struct value *_outvalue; \
1712 if ((invalue) != NULL) { \
1713 _outvalue = target_load_value_member((target),(tlctxt),(invalue),(varstr), \
1714 NULL,(loadflags)); \
1717 struct bsymbol *_varsym; \
1718 _varsym = target_lookup_sym((target),(varstr),NULL,NULL, \
1719 SYMBOL_TYPE_NONE); \
1723 _outvalue = target_load_symbol((target),(tlctxt),_varsym, \
1725 bsymbol_release(_varsym); \
1729 if (outvalueptr) { \
1730 if (0 && *(struct value **)(outvalueptr) == invalue) { \
1731 value_free(*(struct value **)(outvalueptr)); \
1733 *(struct value **)(outvalueptr) = _outvalue; \
1736 value_free(_outvalue); \
1739 #define VLV(target,tlctxt,invalue,varstr,loadflags,outvarptr,outvalueptr,errlabel) \
1741 struct value *_outvalue; \
1742 void *__outvar = (outvarptr); \
1744 if ((invalue) != NULL) { \
1745 _outvalue = target_load_value_member((target),(tlctxt),(invalue),(varstr), \
1746 NULL,(loadflags)); \
1749 struct bsymbol *_varsym; \
1750 _varsym = target_lookup_sym((target),(varstr),NULL,NULL, \
1751 SYMBOL_TYPE_NONE); \
1755 _outvalue = target_load_symbol((target),(tlctxt),_varsym, \
1757 bsymbol_release(_varsym); \
1762 if ((int)sizeof(*(outvarptr)) < _outvalue->bufsiz) { \
1763 verror("outvar size %u smaller than outvalue len %d\n", \
1764 (unsigned)sizeof(*(outvarptr)),_outvalue->bufsiz); \
1765 value_free(_outvalue); \
1768 memcpy(outvarptr,_outvalue->buf, \
1769 ((int)sizeof(*(outvarptr))) > _outvalue->bufsiz \
1770 ? _outvalue->bufsiz : (int)sizeof(*(outvarptr)));\
1772 if (outvalueptr) { \
1773 if (0 && *(struct value **)(outvalueptr) == invalue) { \
1774 value_free(*(struct value **)(outvalueptr)); \
1776 *(struct value **)(outvalueptr) = _outvalue; \
1779 value_free(_outvalue); \
1782 #define VLVAR(target,tlctxt,invalue,varstr,loadflags,outvarptr,errlabel) \
1784 struct value *_outvalue; \
1786 if ((invalue) != NULL) { \
1787 _outvalue = target_load_value_member((target),(tlctxt),(invalue),(varstr), \
1788 NULL,(loadflags)); \
1791 struct bsymbol *_varsym; \
1792 _varsym = target_lookup_sym((target),(varstr),NULL,NULL, \
1793 SYMBOL_TYPE_NONE); \
1797 _outvalue = target_load_symbol((target),(tlctxt),_varsym, \
1799 bsymbol_release(_varsym); \
1803 if ((int)sizeof(*(outvarptr)) < _outvalue->bufsiz) { \
1804 verror("outvar size %u smaller than outvalue len %d\n", \
1805 (unsigned)sizeof(*(outvarptr)),_outvalue->bufsiz); \
1806 value_free(_outvalue); \
1809 memcpy(outvarptr,_outvalue->buf, \
1810 ((int)sizeof(*(outvarptr))) > _outvalue->bufsiz \
1811 ? _outvalue->bufsiz : (int)sizeof(*(outvarptr))); \
1812 value_free(_outvalue); \
1814 #define VLVAL(target,tlctxt,invalue,varstr,loadflags,outvalueptr,errlabel) \
1816 struct value *_outvalue; \
1818 if ((invalue) != NULL) { \
1819 _outvalue = target_load_value_member((target),(tlctxt),(invalue),(varstr), \
1820 NULL,(loadflags)); \
1823 struct bsymbol *_varsym; \
1824 _varsym = target_lookup_sym((target),(varstr),NULL,NULL, \
1825 SYMBOL_TYPE_NONE); \
1829 _outvalue = target_load_symbol((target),(tlctxt),_varsym, \
1831 bsymbol_release(_varsym); \
1835 if (0 && *(struct value **)(outvalueptr) == invalue) { \
1836 value_free(*(struct value **)(outvalueptr)); \
1838 *(struct value **)(outvalueptr) = _outvalue; \
1840 #define VLA(target,addr,loadflags,outbufptr,outbuflen,outvalueptr,errlabel) \
1842 struct value *_outvalue; \
1844 _outvalue = target_load_addr_real((target),(addr),(loadflags), \
1848 if (!*outbufptr) { \
1849 *outbufptr = malloc(outbuflen); \
1851 memcpy(*outbufptr,_outvalue->buf,outbuflen); \
1852 if (outvalueptr) { \
1853 *(struct value **)(outvalueptr) = _outvalue; \
1856 value_free(_outvalue); \
1910 #define value_to_u64(v) (*((uint64_t *)(v)->buf))
1911 #define value_to_u32(v) (*((uint32_t *)(v)->buf))
1912 #define value_to_u16(v) (*((uint16_t *)(v)->buf))
1913 #define value_to_u8(v) (*((uint8_t *)(v)->buf))
1915 #define value_to_i64(v) (*((int64_t *)(v)->buf))
1916 #define value_to_i32(v) (*((int32_t *)(v)->buf))
1917 #define value_to_i16(v) (*((int16_t *)(v)->buf))
1918 #define value_to_i8(v) (*((int8_t *)(v)->buf))
1920 #if __WORDSIZE == 64
1921 #define value_to_unsigned_long value_to_u64
1922 #define value_to_long value_to_i64
1924 #define value_to_unsigned_long value_to_u32
1925 #define value_to_long value_to_i32
1928 #define value_to_int value_to_i32
1929 #define value_to_unsigned_int value_to_u32
1931 #define value_to_char(v) ((char)value_to_i8((v)))
1932 #define value_to_unsigned_char(v) ((unsigned char)value_to_i8((v)))
1933 #define value_to_string(v) ((v)->buf)
1934 #if __WORDSIZE == 64
1935 #define value_to_num(v) value_to_i64((v))
1937 #define value_to_num(v) value_to_i32((v))
1982 char *decoder_lib_lib);
2306 int *again,
void *priv);
2314 struct probepoint *probepoint);
2444 char *frame_sep,
char *ksep);
2798 int (*
snprintf)(
struct target *target,
char *buf,
int bufsiz);
2810 int (*
init)(
struct target *target);
2815 int (*
fini)(
struct target *target);
2821 int (*
detach)(
struct target *target,
int stay_paused);
2823 int (*
kill)(
struct target *target,
int sig);
2911 struct target_spec *(*build_default_overlay_spec)(
struct target *target,
2913 struct target *(*instantiate_overlay)(
struct target *target,
2936 int (*
pause)(
struct target *target,
int nowait);
2953 unsigned char *(*read) (
struct target *target,
ADDR addr,
2954 unsigned long length,
unsigned char *buf);
2957 unsigned long length,
unsigned char *buf);
2960 struct value *(*read_symbol)(
struct target *target,
2978 unsigned char *(*read_phys)(
struct target *target,
ADDR paddr,
2979 unsigned long length,
unsigned char *buf);
2982 unsigned long length,
unsigned char *buf);
2993 struct array_list *(*list_available_tids)(
struct target *target);
3008 char *buf,
int bufsiz,
3009 int detail,
char *sep,
char *key_val_sep);
3065 GHashTable *(*copy_registers)(
struct target *target,
tid_t tid);
3095 unsigned char *code,
unsigned long code_len);
3112 struct target *overlay);
3114 struct target *overlay);
3138 int (*
snprintf)(
struct target *target,
char *buf,
int bufsiz);
3141 int (*
init)(
struct target *target);
3142 int (*
fini)(
struct target *target);
3164 unsigned char *(*read)(
struct target *target,
ADDR addr,
3165 unsigned long length,
unsigned char *buf);
3167 unsigned long length,
unsigned char *buf);
3169 unsigned char *(*read_phys)(
struct target *target,
ADDR paddr,
3170 unsigned long length,
unsigned char *buf);
3172 unsigned long length,
unsigned char *buf);
3175 struct array_list *(*list_available_tids)(
struct target *target);
3188 char *buf,
int bufsiz,
3189 int detail,
char *sep,
char *key_val_sep);
3194 GHashTable *(*copy_registers)(
struct target *target,
tid_t tid);
3224 unsigned char *code,
unsigned long code_len);
3241 struct target *overlay);
3243 struct target *overlay);
int target_enable_feature(struct target *target, int feature, void *arg)
struct bsymbol * target_lookup_sym_line(struct target *target, char *filename, int line, SMOFFSET *offset, ADDR *addr)
int target_decoder_lib_bind(struct target *target, char *decoder_lib, char *decoder_lib_lib)
uint64_t(* get_time)(struct target *target)
target_status_t target_poll(struct target *target, struct timeval *tv, target_poll_outcome_t *outcome, int *pstatus)
int bsymbol_is_inline(struct bsymbol *bsymbol)
int target_find_memory_real(struct target *target, ADDR addr, struct addrspace **space_saveptr, struct memregion **region_saveptr, struct memrange **range_saveptr)
target_type_t target_type(struct target *target)
uint64_t target_get_time(struct target *target)
uint16_t rv_u16(void *buf)
int target_monitor_evloop(struct evloop *evloop, struct timeval *timeout, struct target **target, target_status_t *status)
int(* singlestep)(struct target *target, tid_t tid, int isbp, struct target *overlay)
int(* fini)(struct target *target)
int16_t v_i16(struct value *v)
int(* fini)(struct target *target)
int(* flush_current_thread)(struct target *target)
void target_location_ctxt_free(struct target_location_ctxt *tlctxt)
#define THREAD_STATUS_BITS
int target_install_custom_sighandlers(sigset_t *ignored, sigset_t *interrupt, sigset_t *exit, void(*sighandler)(int signo, siginfo_t *siginfo, void *x))
target_mode_t target_mode
int value_update_i16(struct value *value, int16_t v)
struct target_location_ctxt * target_unwind(struct target *target, tid_t tid)
GHashTable * target_copy_registers(struct target *target, tid_t tid)
int target_enable_sw_breakpoint(struct target *target, tid_t tid, struct target_memmod *mmod)
int value_snprintf(struct value *value, char *buf, int buflen)
int target_is_evloop_attached(struct target *target, struct evloop *evloop)
int value_update_i32(struct value *value, int32_t v)
int target_disable_feature(struct target *target, int feature)
int(* enable_hw_breakpoint)(struct target *target, tid_t tid, REG dreg)
unsigned char * target_read_addr(struct target *target, ADDR addr, unsigned long length, unsigned char *buf)
int target_singlestep(struct target *target, tid_t tid, int isbp)
void target_dump_thread(struct target *target, tid_t tid, FILE *stream, int detail)
int(* attach)(struct target *target)
int(* handle_exception)(struct target *target, target_exception_flags_t flags)
int target_write_reg(struct target *target, tid_t tid, REG reg, REGVAL value)
int target_lookup_line_addr(struct target *target, char *filename, ADDR addr)
int value_update_f(struct value *value, float v)
target_personality_t personality
struct array_list * frames
int(* addr_v2p)(struct target *target, tid_t tid, ADDR vaddr, ADDR *paddr)
char * target_name(struct target *target)
struct target * target_lookup_target_id(int id)
int(* attach)(struct target *target)
void value_dump_simple(struct value *value, struct dump_info *ud)
int(* disable_hw_breakpoints)(struct target *target, tid_t tid)
char * bsymbol_get_name(struct bsymbol *bsymbol)
int target_remove_sw_breakpoint(struct target *target, tid_t tid, struct target_memmod *mmod)
int target_store_value(struct target *target, struct value *value)
int target_bsymbol_resolve_base(struct target *target, struct target_location_ctxt *tlctxt, struct bsymbol *bsymbol, ADDR *o_addr, struct memrange **o_range)
int(* flush_all_threads)(struct target *target)
struct memregion * region
struct target_spec * target_build_spec(target_type_t type, target_mode_t mode)
int8_t v_i8(struct value *v)
struct value * target_load_addr_obj(struct target *target, struct memregion *region, ADDR obj_addr, load_flags_t flags, int len)
int target_unset_hw_watchpoint(struct target *target, tid_t tid, REG reg)
int(* unchange_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
GHashTable * soft_probepoints
int target_load_available_threads(struct target *target, int force)
tid_t(* gettid)(struct target *target)
struct target_personality_ops * personality_ops
int target_location_ctxt_read_reg(struct target_location_ctxt *tlctxt, REG reg, REGVAL *o_regval)
struct target * sstep_thread_overlay
struct target_thread * sstep_thread
int(* unset_hw_breakpoint)(struct target *target, tid_t tid, REG reg)
GHashTable * symbol_name_decoders
int(* set_active_probing)(struct target *target, active_probe_flags_t flags)
struct scope * target_lookup_addr(struct target *target, uint64_t addr)
struct target_process_ops * process_ops
struct bsymbol * target_lookup_sym(struct target *target, const char *name, const char *delim, char *srcfile, symbol_type_flag_t ftype)
struct target_spec * target_argp_driver_parse_one(struct argp *driver_parser, void *driver_state, int argc, char **argv, target_type_t target_types, int filter_quoted)
int target_location_ctxt_unwind(struct target_location_ctxt *tlctxt)
int target_has_base(struct target *overlay, struct target *base)
long double v_dd(struct value *v)
int target_lookup_next_safe_disasm_range(struct target *target, ADDR addr, ADDR *start, ADDR *end, void **data)
int(* pause_thread)(struct target *target, tid_t tid, int nowait)
GList * target_instantiate_and_open(struct target_spec *primary_target_spec, GList *base_target_specs, GList *overlay_target_specs, struct evloop *evloop, GList **error_specs)
thread_status_t target_thread_status(struct target *target, tid_t tid)
target_debug_bp_handler_t handle_break
struct target_thread * base_thread
void target_driver_argp_init_children(struct argp_state *state)
struct target_location_ctxt * tlctxt
active_probe_flags_t ap_flags
int(* unset_hw_breakpoint)(struct target *target, tid_t tid, REG reg)
int(* flush_thread)(struct target *target, tid_t tid)
int target_close(struct target *target)
struct action * target_lookup_action(struct target *target, int action_id)
struct array_list * target_list_tids(struct target *target)
int(* init)(struct target *target)
void value_dump(struct value *value, struct dump_info *ud)
int64_t v_i64(struct value *v)
int(* unset_hw_watchpoint)(struct target *target, tid_t tid, REG reg)
struct target_location_ctxt * target_location_ctxt_create(struct target *target, tid_t tid, struct memregion *region)
int(* unwind_read_reg)(struct target_location_ctxt *tlctxt, REG reg, REGVAL *o_regval)
struct target_thread * global_thread
target_status_t(* target_exception_handler_t)(struct target *target, target_exception_flags_t flags, int *again, void *priv)
int target_open_all(struct target *target)
int(* disable_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
int(* obj_flags_propagate)(struct target *target, obj_flags_t orf, obj_flags_t nandf)
int(* load_available_threads)(struct target *target, int force)
int(* set_hw_breakpoint)(struct target *target, tid_t tid, REG reg, ADDR addr)
int target_singlestep_end(struct target *target, tid_t tid)
int(* set_hw_breakpoint)(struct target *target, tid_t tid, REG reg, ADDR addr)
int target_decoder_lookup(struct target *target, struct value *value, target_decoder_t *decoder, void **decoder_data)
struct target_os_ops * os_ops
int value_update_addr(struct value *value, ADDR v)
int value_update_num(struct value *value, num_t v)
unsigned long target_write_physaddr(struct target *target, ADDR paddr, unsigned long length, unsigned char *buf)
target_status_t(* status)(struct target *target)
struct bsymbol * alt_bsymbol
int(* writereg)(struct target *target, tid_t tid, REG reg, REGVAL value)
int(* postopened)(struct target *target)
int value_update(struct value *value, const char *buf, int bufsiz)
struct target_thread * thread
signed char rv_c(void *buf)
tid_t target_gettid(struct target *target)
uint64_t(* get_tsc)(struct target *target)
GList * target_instantiate_and_open_list(GList *target_specs, struct evloop *evloop, GList **error_specs)
void target_hold(struct target *target)
int target_resume(struct target *target)
int target_enable_hw_breakpoint(struct target *target, tid_t tid, REG dreg)
int(* obj_flags_propagate)(struct target *target, obj_flags_t orf, obj_flags_t nandf)
int(* notify_sw_breakpoint)(struct target *target, ADDR addr, int notification)
wchar_t v_wc(struct value *v)
int(* writereg_tidctxt)(struct target *target, tid_t tid, thread_ctxt_t tidctxt, REG reg, REGVAL value)
struct array_list * target_list_threads(struct target *target)
int target_write_reg_ctxt(struct target *target, tid_t tid, thread_ctxt_t tidctxt, REG reg, REGVAL value)
int(* pause)(struct target *target, int nowait)
OFFSET target_offsetof_symbol(struct target *target, struct bsymbol *bsymbol, char *member, const char *delim)
ADDR target_autoload_pointers(struct target *target, struct symbol *datatype, ADDR addr, load_flags_t flags, struct symbol **datatype_saveptr, struct memrange **range_saveptr)
int(* remove_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
int(* snprintf)(struct target *target, char *buf, int bufsiz)
void target_monitor_schedule_global_interrupt(void)
int target_pause_thread(struct target *target, tid_t tid, int nowait)
int target_contains_real(struct target *target, ADDR addr)
int(* thread_snprintf)(struct target *target, struct target_thread *tthread, char *buf, int bufsiz, int detail, char *sep, char *key_val_sep)
struct symbol * target_create_synthetic_type_pointer(struct target *target, struct symbol *type)
result_t(* target_debug_bp_handler_t)(struct target *target, struct target_thread *tthread, struct probepoint *probepoint, int was_stepping)
uint64_t(* get_tsc)(struct target *target)
void target_location_ctxt_retarget_bsymbol(struct target_location_ctxt *tlctxt, struct bsymbol *bsymbol)
void target_dump_all_threads(struct target *target, FILE *stream, int detail)
int value_refresh_diff(struct value *value, int recurse, value_diff_t *vdiff, char **old_buf, int *old_bufsiz, value_hash_t *old_vhash)
unsigned char v_uc(struct value *v)
int value_update_c(struct value *value, signed char v)
int(* instr_can_switch_context)(struct target *target, ADDR addr)
struct regcache ** regcaches
int target_flush_thread(struct target *target, tid_t tid)
int(* write_symbol)(struct target *target, struct value *value)
target_location_ctxt_flag_t
int(* loaddebugfiles)(struct target *target, struct addrspace *space, struct memregion *region)
REGVAL target_read_reg(struct target *target, tid_t tid, REG reg)
tid_t target_lookup_overlay_thread_by_name(struct target *target, char *name)
struct value * target_load_type_reg(struct target *target, struct symbol *type, tid_t tid, REG reg, load_flags_t flags)
long double rv_dd(void *buf)
int(* thread_snprintf)(struct target *target, struct target_thread *tthread, char *buf, int bufsiz, int detail, char *sep, char *key_val_sep)
int value_update_u8(struct value *value, uint8_t v)
struct probepoint * interrupted_ss_probepoint
REG(* get_unused_debug_reg)(struct target *target, tid_t tid)
struct target_thread * current_thread
int(* change_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod, unsigned char *code, unsigned long code_len)
struct target_decoder_lib * lib
void(* handle_event)(struct target *target, struct target_event *event)
struct target_location_ctxt_frame * target_location_ctxt_get_frame(struct target_location_ctxt *tlctxt, int frame)
void bsymbol_dump(struct bsymbol *bsymbol, struct dump_info *ud)
int(* enable_hw_breakpoints)(struct target *target, tid_t tid)
void(* handle_event)(struct target *target, struct target_event *event)
int(* unwind_read_reg)(struct target_location_ctxt *tlctxt, REG reg, REGVAL *o_regval)
uint64_t(* get_time)(struct target *target)
int value_update_i64(struct value *value, int64_t v)
struct target_thread * target_load_current_thread(struct target *target, int force)
int(* probe_register_symbol)(struct target *target, tid_t tid, struct probe *probe, struct bsymbol *bsymbol, probepoint_style_t style, probepoint_whence_t whence, probepoint_watchsize_t watchsize)
int(* detach)(struct target *target, int stay_paused)
int(* load_available_threads)(struct target *target, int force)
void target_default_cleanup(void)
uint64_t target_get_counter(struct target *target)
int(* enable_feature)(struct target *target, int feature, void *arg)
void target_monitor_clear_global_interrupt(void)
struct target_location_ctxt_frame * target_location_ctxt_prev(struct target_location_ctxt *tlctxt)
unsigned char * target_read_physaddr(struct target *target, ADDR paddr, unsigned long length, unsigned char *buf)
int target_decoder_lib_register(struct target_decoder_lib *lib)
int value_refresh(struct value *value, int recursive)
int(* disable_hw_breakpoints)(struct target *target, tid_t tid)
int(* loaddebugfiles)(struct target *target, struct addrspace *space, struct memregion *region)
void(* free_thread_state)(struct target *target, void *state)
struct target_location_ctxt * global_tlctxt
unsigned long(* write_phys)(struct target *target, ADDR paddr, unsigned long length, unsigned char *buf)
int target_snprintf(struct target *target, char *buf, int bufsiz)
struct probe * target_lookup_probe(struct target *target, int probe_id)
struct target_location_ctxt * target_global_tlctxt(struct target *target)
int value_update_dd(struct value *value, long double v)
GHashTable * target_hash_threads(struct target *target)
int(* flush_thread)(struct target *target, tid_t tid)
int target_kill(struct target *target, int sig)
int target_detach_evloop(struct target *target)
int value_update_wc(struct value *value, wchar_t v)
struct value * parent_value
int target_disable_hw_breakpoint(struct target *target, tid_t tid, REG dreg)
int(* set_hw_watchpoint)(struct target *target, tid_t tid, REG reg, ADDR addr, probepoint_whence_t whence, probepoint_watchsize_t watchsize)
REG(* get_unused_debug_reg)(struct target *target, tid_t tid)
result_t(* target_debug_handler_t)(struct target *target, struct target_thread *tthread, struct probepoint *probepoint)
int(* disable_hw_breakpoint)(struct target *target, tid_t tid, REG dreg)
int(* postopened)(struct target *target)
int value_update_uc(struct value *value, unsigned char v)
struct target_thread * target_load_thread(struct target *target, tid_t tid, int force)
tid_t target_lookup_overlay_thread_by_id(struct target *target, int id)
int value_update_i8(struct value *value, int8_t v)
int(* target_decoder_t)(struct target *target, void *data, struct value *value, char *buf, int buflen)
struct value * target_load_symbol(struct target *target, struct target_location_ctxt *tlctxt, struct bsymbol *bsymbol, load_flags_t flags)
int(* writereg)(struct target *target, tid_t tid, REG reg, REGVAL value)
struct memcache * memcache
int(* resume)(struct target *target)
int target_disable_hw_breakpoints(struct target *target, tid_t tid)
void value_free(struct value *value)
unsigned char rv_uc(void *buf)
REGVAL target_read_creg(struct target *target, tid_t tid, common_reg_t reg)
struct target_spec * spec
int target_set_hw_watchpoint(struct target *target, tid_t tid, REG reg, ADDR addr, probepoint_whence_t whence, int watchsize)
int(* load_all_threads)(struct target *target, int force)
uint64_t(* get_counter)(struct target *target)
int target_unset_hw_breakpoint(struct target *target, tid_t tid, REG reg)
struct array_list * target_list_overlays(struct target *target)
struct target_location_ctxt_frame * target_location_ctxt_current_frame(struct target_location_ctxt *tlctxt)
int target_notify_sw_breakpoint(struct target *target, ADDR addr, int notification)
struct value * value_clone(struct value *in)
struct target_memmod * emulating_debug_mmod
int target_load_all_threads(struct target *target, int force)
int(* disable_hw_breakpoint)(struct target *target, tid_t tid, REG dreg)
int target_spec_to_argv(struct target_spec *spec, char *arg0, int *argc, char ***argv)
target_type_t target_type
int target_monitor_was_interrupted(siginfo_t *last_siginfo)
int value_update_u16(struct value *value, uint16_t v)
REGVAL(* readreg_tidctxt)(struct target *target, tid_t tid, thread_ctxt_t tidctxt, REG reg)
struct value * target_load_addr_real(struct target *target, ADDR addr, load_flags_t flags, int len)
char * THREAD_STATUS_STRINGS[]
unsigned long(* write)(struct target *target, ADDR addr, unsigned long length, unsigned char *buf)
int(* remove_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
struct array_list * tpc_stack
REG target_get_unused_debug_reg(struct target *target, tid_t tid)
int(* attach_overlay_thread)(struct target *base, struct target *overlay, tid_t newtid)
int(* gc_threads)(struct target *target)
int(* unchange_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
int(* set_active_probing)(struct target *target, active_probe_flags_t flags)
ADDR v_addr(struct value *v)
struct target_location_ctxt * target_location_ctxt_create_from_bsymbol(struct target *target, tid_t tid, struct bsymbol *bsymbol)
int target_attach_evloop(struct target *target, struct evloop *evloop)
void target_free_spec(struct target_spec *spec)
struct thread_probepoint_context * tpc
int(* attach_evloop)(struct target *target, struct evloop *evloop)
int target_set_active_probing(struct target *target, active_probe_flags_t flags)
REGVAL target_read_reg_ctxt(struct target *target, tid_t tid, thread_ctxt_t tidctxt, REG reg)
struct value * value_reload_as_type(struct value *value, struct symbol *type, int force)
int target_unwind_snprintf(char *buf, int buflen, struct target *target, tid_t tid, target_unwind_style_t fstyle, char *frame_sep, char *ksep)
struct target_memmod * target_insert_sw_breakpoint(struct target *target, tid_t tid, ADDR addr)
int target_pause(struct target *target)
int(* enable_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
struct target_spec * target_build_default_overlay_spec(struct target *target, tid_t tid)
int(* unbind)(struct target_decoder_binding *tdb, void *decoder_data)
int(* loadregions)(struct target *target, struct addrspace *space)
int target_flush_current_thread(struct target *target)
GList ** base_target_specs
unsigned long target_write_addr(struct target *target, ADDR addr, unsigned long length, unsigned char *buf)
int target_cregno(struct target *target, common_reg_t creg, REG *reg)
void * target_argp_driver_state(struct argp_state *state)
struct value * target_load_type_regval(struct target *target, struct symbol *type, tid_t tid, REG reg, REGVAL regval, load_flags_t flags)
void target_release(struct target *target)
int(* singlestep_end)(struct target *target, tid_t tid, struct target *overlay)
ADDR target_addressof_symbol(struct target *target, struct target_location_ctxt *tlctxt, struct bsymbol *bsymbol, load_flags_t flags, struct memrange **range_saveptr)
int(* postloadinit)(struct target *target)
const char * target_regname(struct target *target, REG reg)
int(* notify_sw_breakpoint)(struct target *target, ADDR addr, int notification)
num_t v_num(struct value *v)
target_status_t target_monitor(struct target *target)
void(* free_thread_state)(struct target *target, void *state)
int(* unset_hw_watchpoint)(struct target *target, tid_t tid, REG reg)
struct array_list * debugfile_load_opts_list
int target_addr_v2p(struct target *target, tid_t tid, ADDR vaddr, ADDR *paddr)
int value_update_unum(struct value *value, unum_t v)
unsigned int thread_ctxt_t
int(* addr_v2p)(struct target *target, tid_t tid, ADDR vaddr, ADDR *paddr)
REGVAL(* readreg_tidctxt)(struct target *target, tid_t tid, thread_ctxt_t tidctxt, REG reg)
int(* disable_feature)(struct target *target, int feature)
GHashTable * overlay_aliases
double v_d(struct value *v)
target_exception_handler_t handle_exception
int16_t rv_i16(void *buf)
char * REGION_TYPE_STRINGS[]
struct target * target_instantiate(struct target_spec *spec, struct evloop *evloop)
struct list_head ss_actions
uint32_t rv_u32(void *buf)
int(* probe_register_symbol)(struct target *target, tid_t tid, struct probe *probe, struct bsymbol *bsymbol, probepoint_style_t style, probepoint_whence_t whence, probepoint_watchsize_t watchsize)
uint32_t needmonitorinterrupt
uint64_t target_get_tsc(struct target *target)
int target_set_hw_breakpoint(struct target *target, tid_t tid, REG reg, ADDR addr)
int64_t rv_i64(void *buf)
int target_is_open(struct target *target)
target_location_ctxt_flag_t flags
int target_regno(struct target *target, char *name, REG *reg)
int(* invalidate_thread)(struct target *target, struct target_thread *tthread)
REFCNT bsymbol_release(struct bsymbol *bsymbol)
int(* singlestep)(struct target *target, tid_t tid, int isbp, struct target *overlay)
int target_gc_threads(struct target *target)
struct bsymbol * target_lookup_sym_addr(struct target *target, ADDR addr)
char * v_string(struct value *v)
int target_open(struct target *target)
uint16_t v_u16(struct value *v)
uint64_t(* get_counter)(struct target *target)
GList ** overlay_target_specs
unsigned long(* write_phys)(struct target *target, ADDR paddr, unsigned long length, unsigned char *buf)
GHashTable * hard_probepoints
int(* enable_feature)(struct target *target, int feature, void *arg)
int(* loadspaces)(struct target *target)
int target_argp_driver_parse(struct argp *driver_parser, void *driver_state, int argc, char **argv, target_type_t target_types, int filter_quoted, struct target_spec **primary_target_spec, GList **base_target_specs, GList **overlay_target_specs)
void * __personality_specific_ops
target_status_t target_status(struct target *target)
uint64_t v_u64(struct value *v)
int(* gc_threads)(struct target *target)
uint64_t rv_u64(void *buf)
target_status_t target_notify_overlay(struct target *overlay, target_exception_flags_t flags, tid_t tid, ADDR ipval, int *again)
unsigned char * target_load_code(struct target *target, ADDR start, unsigned int len, int nocache, int force_copy, int *caller_free)
int value_update_u64(struct value *value, uint64_t v)
int(* detach_overlay_thread)(struct target *base, struct target *overlay, tid_t tid)
struct value * target_load_symbol_member(struct target *target, struct target_location_ctxt *tlctxt, struct bsymbol *bsymbol, const char *member, const char *delim, load_flags_t flags)
int(* invalidate_thread)(struct target *target, struct target_thread *tthread)
int target_lookup_safe_disasm_range(struct target *target, ADDR addr, ADDR *start, ADDR *end, void **data)
int target_flush_all_threads(struct target *target)
int(* set_hw_watchpoint)(struct target *target, tid_t tid, REG reg, ADDR addr, probepoint_whence_t whence, probepoint_watchsize_t watchsize)
int32_t rv_i32(void *buf)
REGVAL(* readreg)(struct target *target, tid_t tid, REG reg)
int target_thread_snprintf(struct target *target, tid_t tid, char *buf, int bufsiz, int detail, char *sep, char *key_val_sep)
struct value * target_load_type(struct target *target, struct symbol *type, ADDR addr, load_flags_t flags)
int32_t v_i32(struct value *v)
uint32_t global_tlctxt_is_dynamic
struct bsymbol * target_lookup_sym_member(struct target *target, struct bsymbol *bsymbol, const char *name, const char *delim)
int(* snprintf)(struct target *target, char *buf, int bufsiz)
int(* detach_evloop)(struct target *target)
struct target_spec * spec
struct array_list * target_list_available_overlay_tids(struct target *target, target_type_t type)
uint8_t v_u8(struct value *v)
signed char v_c(struct value *v)
int(* writereg_tidctxt)(struct target *target, tid_t tid, thread_ctxt_t tidctxt, REG reg, REGVAL value)
int(* enable_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
uint32_t nodisablehwbponss
void bsymbol_hold(struct bsymbol *bsymbol)
int value_update_u32(struct value *value, uint32_t v)
struct lsymbol * bsymbol_get_lsymbol(struct bsymbol *bsymbol)
REGVAL(* readreg)(struct target *target, tid_t tid, REG reg)
int(* instr_can_switch_context)(struct target *target, ADDR addr)
int(* disable_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod)
struct location_ops * location_ops
int value_update_zero(struct value *value, const char *buf, int bufsiz)
char * debugfile_root_prefix
int target_id(struct target *target)
GHashTable * target_hash_available_tids(struct target *target)
unsigned int max_thread_ctxt
int target_unchange_sw_breakpoint(struct target *target, tid_t tid, struct target_memmod *mmod)
struct target_thread * thread
int(* disable_feature)(struct target *target, int feature)
unsigned long(* write)(struct target *target, ADDR addr, unsigned long length, unsigned char *buf)
int target_finalize(struct target *target)
struct array_list * target_list_available_tids(struct target *target)
struct target_spec * target_argp_target_spec(struct argp_state *state)
struct symbol * bsymbol_get_symbol(struct bsymbol *bsymbol)
uint32_t v_u32(struct value *v)
struct target_thread * blocking_thread
target_status_t(* handle_overlay_exception)(struct target *overlay, target_exception_flags_t flags, tid_t tid, ADDR ipval, int *again)
target_debug_handler_t handle_step
int(* singlestep_end)(struct target *target, tid_t tid, struct target *overlay)
struct bsymbol * bsymbol_create_noninline(struct bsymbol *bsymbol)
int(* flush_current_thread)(struct target *target)
float v_f(struct value *v)
int target_change_sw_breakpoint(struct target *target, tid_t tid, struct target_memmod *mmod, unsigned char *code, unsigned long code_len)
int(* loadregions)(struct target *target, struct addrspace *space)
int(* change_sw_breakpoint)(struct target *target, tid_t tid, struct target_memmod *mmod, unsigned char *code, unsigned long code_len)
int(* init)(struct target *target)
int target_enable_hw_breakpoints(struct target *target, tid_t tid)
ADDR target_load_pointers(struct target *target, ADDR addr, int count, struct memrange **range_saveptr)
int(* pause_thread)(struct target *target, tid_t tid, int nowait)
int(* postloadinit)(struct target *target)
unum_t v_unum(struct value *v)
ADDR value_addr(struct value *value)
void target_default_sighandler(int signo, siginfo_t *siginfo, void *x)
struct value * target_load_value_member(struct target *target, struct target_location_ctxt *tlctxt, struct value *old_value, const char *member, const char *delim, load_flags_t flags)
int(* enable_hw_breakpoint)(struct target *target, tid_t tid, REG dreg)
struct target * target_instantiate_overlay(struct target *target, tid_t tid, struct target_spec *spec)
int(* kill)(struct target *target, int sig)
struct location_ctxt * lctxt
int target_disable_sw_breakpoint(struct target *target, tid_t tid, struct target_memmod *mmod)
target_status_t(* poll)(struct target *target, struct timeval *tv, target_poll_outcome_t *outcome, int *pstatus)
target_debug_handler_t handle_interrupted_step
int target_write_creg(struct target *target, tid_t tid, common_reg_t reg, REGVAL value)
int(* evloop_handler_t)(int fd, int fdtype, void *state)
int target_monitor_schedule_interrupt(struct target *target)
int(* loadspaces)(struct target *target)
int target_install_default_sighandlers(void(*sighandler)(int signo, siginfo_t *siginfo, void *x))
int target_decoder_binding_add(struct target_decoder_binding *tdb, struct bsymbol *bsymbol, target_decoder_t dfn)
active_probe_flags_t ap_flags
int(* enable_hw_breakpoints)(struct target *target, tid_t tid)
int target_monitor_handling_exception(struct target *target)
target_type_t supported_overlay_types
int value_update_d(struct value *value, double v)