Stackdb
Stackdb is a stackable, multi-target and -level source debugger and memory forensics library.
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Macros | Enumerations | Functions
probe.h File Reference
#include "common.h"
#include "list.h"
#include "probe_api.h"
#include <glib.h>
Include dependency graph for probe.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  thread_action_context
 
struct  thread_probepoint_context
 
struct  probepoint
 
struct  probe
 
struct  action
 

Macros

#define PROBE_SAFE_OP(probe, op)
 
#define PROBE_SAFE_OP_ARGS(probe, op,...)
 
#define LOGDUMPPROBEPOINT(dl, la, lt, pp)
 
#define LOGDUMPPROBEPOINT_NL(dl, la, lt, p)
 
#define LOGDUMPPROBE(dl, la, lt, p)
 
#define LOGDUMPPROBE_NL(dl, la, lt, p)
 

Enumerations

enum  probepoint_state_t {
  PROBE_INSERTING = 1, PROBE_BP_SET, PROBE_BP_PREHANDLING, PROBE_BP_ACTIONHANDLING,
  PROBE_BP_POSTHANDLING, PROBE_REMOVING, PROBE_DISABLED, PROBE_ACTION_RUNNING,
  PROBE_ACTION_DONE
}
 

Functions

result_t probepoint_bp_handler (struct target *target, struct target_thread *tthread, struct probepoint *probepoint, int was_stepping)
 
result_t probepoint_ss_handler (struct target *target, struct target_thread *tthread, struct probepoint *probepoint)
 
result_t probepoint_interrupted_ss_handler (struct target *target, struct target_thread *tthread, struct probepoint *probepoint)
 
result_t probepoint_resumeat_handler (struct target *target, struct target_thread *tthread)
 
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)
 
void probepoint_free_ext (struct probepoint *probepoint)
 

Macro Definition Documentation

#define LOGDUMPPROBE (   dl,
  la,
  lt,
  p 
)
Value:
vdebugc((dl),(la),(lt),"probe(%s) ",probe->name); \
if ((p)->bsymbol) { \
vdebugc((dl),(la),(lt),"(on %s) ", \
} \
else { \
vdebugc((dl),(la),(lt),"(on <UNKNOWN>) "); \
} \
if ((p)->probepoint) { \
} \
if ((p)->sources) { \
vdebugc((dl),(la),(lt)," (%d sources)",g_list_length((p)->sources)); \
} \
if ((p)->sinks) { \
vdebugc((dl),(la),(lt)," (%d sinks)",g_list_length((p)->sinks)); \
}
#define LOGDUMPPROBEPOINT(dl, la, lt, pp)
Definition: probe.h:35
struct lsymbol * lsymbol
Definition: target.h:1017
struct symbol * symbol
Definition: dwdebug.h:1010
void * p
char * name
Definition: probe.h:314
char * name
Definition: dwdebug_priv.h:788
Definition: probe.h:308
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303

Definition at line 54 of file probe.h.

#define LOGDUMPPROBE_NL (   dl,
  la,
  lt,
  p 
)
Value:
LOGDUMPPROBE((dl),(la),(lt),(p)); \
vdebugc((dl),(la),(lt),"\n");
void * p
#define LOGDUMPPROBE(dl, la, lt, p)
Definition: probe.h:54
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303

Definition at line 73 of file probe.h.

#define LOGDUMPPROBEPOINT (   dl,
  la,
  lt,
  pp 
)
Value:
if ((pp)->bsymbol && (pp)->symbol_addr) { \
vdebugc((dl),(la),(lt),"probepoint(0x%"PRIxADDR" %s:%+d) ", \
(pp)->addr,(pp)->bsymbol->lsymbol->symbol->name, \
(pp)->symbol_addr - (pp)->addr); \
} \
else if ((pp)->bsymbol) { \
vdebugc((dl),(la),(lt),"probepoint(0x%"PRIxADDR" %s) ", \
(pp)->addr,(pp)->bsymbol->lsymbol->symbol->name); \
} \
else { \
vdebugc((dl),(la),(lt),"probepoint(0x%"PRIxADDR") ", \
(pp)->addr); \
}
struct lsymbol * lsymbol
Definition: target.h:1017
struct symbol * symbol
Definition: dwdebug.h:1010
char * name
Definition: dwdebug_priv.h:788
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303
#define PRIxADDR
Definition: common.h:67

Definition at line 35 of file probe.h.

#define LOGDUMPPROBEPOINT_NL (   dl,
  la,
  lt,
  p 
)
Value:
LOGDUMPPROBEPOINT((dl),(la),(lt),(p)); \
vdebugc((dl),(la),(lt),"\n");
#define LOGDUMPPROBEPOINT(dl, la, lt, pp)
Definition: probe.h:35
void * p
#define vdebugc(devel, areas, flags, format,...)
Definition: log.h:303

Definition at line 50 of file probe.h.

#define PROBE_SAFE_OP (   probe,
  op 
)
Value:
(((probe)->ops && (probe)->ops->op) \
? (probe)->ops->op((probe)) \
: 0)
Definition: probe.h:308

Definition at line 28 of file probe.h.

#define PROBE_SAFE_OP_ARGS (   probe,
  op,
  ... 
)
Value:
(((probe)->ops && (probe)->ops->op) \
? (probe)->ops->op((probe), ## __VA_ARGS__) \
: 0)
Definition: probe.h:308

Definition at line 31 of file probe.h.

Enumeration Type Documentation

Enumerator
PROBE_INSERTING 
PROBE_BP_SET 
PROBE_BP_PREHANDLING 
PROBE_BP_ACTIONHANDLING 
PROBE_BP_POSTHANDLING 
PROBE_REMOVING 
PROBE_DISABLED 
PROBE_ACTION_RUNNING 
PROBE_ACTION_DONE 

Definition at line 96 of file probe.h.

Function Documentation

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 
)

Definition at line 1250 of file probe.c.

result_t probepoint_bp_handler ( struct target target,
struct target_thread tthread,
struct probepoint probepoint,
int  was_stepping 
)

Definition at line 2593 of file probe.c.

void probepoint_free_ext ( struct probepoint probepoint)

Definition at line 570 of file probe.c.

result_t probepoint_interrupted_ss_handler ( struct target target,
struct target_thread tthread,
struct probepoint probepoint 
)

Definition at line 3359 of file probe.c.

result_t probepoint_resumeat_handler ( struct target target,
struct target_thread tthread 
)

Definition at line 3504 of file probe.c.

result_t probepoint_ss_handler ( struct target target,
struct target_thread tthread,
struct probepoint probepoint 
)

Definition at line 3023 of file probe.c.