28 #define PROBE_SAFE_OP(probe,op) (((probe)->ops && (probe)->ops->op) \
29 ? (probe)->ops->op((probe)) \
31 #define PROBE_SAFE_OP_ARGS(probe,op,...) (((probe)->ops && (probe)->ops->op) \
32 ? (probe)->ops->op((probe), ## __VA_ARGS__) \
35 #define LOGDUMPPROBEPOINT(dl,la,lt,pp) \
36 if ((pp)->bsymbol && (pp)->symbol_addr) { \
37 vdebugc((dl),(la),(lt),"probepoint(0x%"PRIxADDR" %s:%+d) ", \
38 (pp)->addr,(pp)->bsymbol->lsymbol->symbol->name, \
39 (pp)->symbol_addr - (pp)->addr); \
41 else if ((pp)->bsymbol) { \
42 vdebugc((dl),(la),(lt),"probepoint(0x%"PRIxADDR" %s) ", \
43 (pp)->addr,(pp)->bsymbol->lsymbol->symbol->name); \
46 vdebugc((dl),(la),(lt),"probepoint(0x%"PRIxADDR") ", \
50 #define LOGDUMPPROBEPOINT_NL(dl,la,lt,p) \
51 LOGDUMPPROBEPOINT((dl),(la),(lt),(p)); \
52 vdebugc((dl),(la),(lt),"\n");
54 #define LOGDUMPPROBE(dl,la,lt,p) \
55 vdebugc((dl),(la),(lt),"probe(%s) ",probe->name); \
57 vdebugc((dl),(la),(lt),"(on %s) ", \
58 (p)->bsymbol->lsymbol->symbol->name); \
61 vdebugc((dl),(la),(lt),"(on <UNKNOWN>) "); \
63 if ((p)->probepoint) { \
64 LOGDUMPPROBEPOINT(dl,la,lt,(p)->probepoint); \
67 vdebugc((dl),(la),(lt)," (%d sources)",g_list_length((p)->sources)); \
70 vdebugc((dl),(la),(lt)," (%d sinks)",g_list_length((p)->sinks)); \
73 #define LOGDUMPPROBE_NL(dl,la,lt,p) \
74 LOGDUMPPROBE((dl),(la),(lt),(p)); \
75 vdebugc((dl),(la),(lt),"\n");
void probepoint_free_ext(struct probepoint *probepoint)
probe_handler_t pre_handler
struct target_nv_filter * post_filter
struct target_thread * thread
result_t probepoint_bp_handler(struct target *target, struct target_thread *tthread, struct probepoint *probepoint, int was_stepping)
struct target_memmod * mmod
struct target_nv_filter * thread_filter
result_t(* probe_handler_t)(struct probe *probe, tid_t tid, void *handler_data, struct probe *trigger, struct probe *base)
struct list_head ss_actions
result_t probepoint_ss_handler(struct target *target, struct target_thread *tthread, struct probepoint *probepoint)
struct probe * __probe_register_addr(struct probe *probe, ADDR addr, struct memrange *range, probepoint_type_t type, probepoint_style_t style, probepoint_whence_t whence, probepoint_watchsize_t watchsize, struct bsymbol *bsymbol, ADDR symbol_addr)
struct target_thread * thread
struct action::@17::@21 memmod
result_t(* action_handler_t)(struct action *action, struct target_thread *thread, struct probe *probe, struct probepoint *probepoint, handler_msg_t msg, int msg_detail, void *handler_data)
result_t probepoint_interrupted_ss_handler(struct target *target, struct target_thread *tthread, struct probepoint *probepoint)
struct action::@17::@19 code
struct list_head complex_actions
struct action::@17::@20 regmod
struct thread_action_context tac
struct target_thread * thread
int8_t prologue_has_sp_offset
struct thread_probepoint_context * tpc
struct target_nv_filter * pre_filter
probepoint_watchsize_t watchsize
result_t probepoint_resumeat_handler(struct target *target, struct target_thread *tthread)
struct action::@17::@18 ret
struct list_head simple_actions
probepoint_style_t orig_style
probe_handler_t post_handler
struct probepoint * probepoint
struct probepoint * probepoint
probepoint_whence_t whence