GDB (xrefs)
Classes | Macros | Typedefs | Enumerations | Functions | Variables
/tmp/gdb-7.10/gdb/dtrace-probe.c File Reference
#include "defs.h"
#include "probe.h"
#include "vec.h"
#include "elf-bfd.h"
#include "gdbtypes.h"
#include "obstack.h"
#include "objfiles.h"
#include "complaints.h"
#include "value.h"
#include "ax.h"
#include "ax-gdb.h"
#include "language.h"
#include "parser-defs.h"
#include "inferior.h"

Go to the source code of this file.

Classes

struct  dtrace_probe_arg
 
struct  dtrace_probe_enabler
 
struct  dtrace_probe
 
struct  dtrace_dof_hdr
 
struct  dtrace_dof_sect
 
struct  dtrace_dof_provider
 
struct  dtrace_dof_probe
 

Macros

#define SHT_SUNW_dof   0x6ffffff4
 
#define DOF_UINT(dof, field)
 
#define DTRACE_DOF_PTR(dof, offset)   (&((char *) (dof))[(offset)])
 
#define DTRACE_DOF_SECT(dof, idx)
 

Typedefs

typedef struct dtrace_probe_arg dtrace_probe_arg_s
 
typedef struct dtrace_probe_enabler dtrace_probe_enabler_s
 

Enumerations

enum  dtrace_dof_sect_type {
  DTRACE_DOF_SECT_TYPE_NONE = 0, DTRACE_DOF_SECT_TYPE_ECBDESC = 3, DTRACE_DOF_SECT_TYPE_STRTAB = 8, DTRACE_DOF_SECT_TYPE_PROVIDER = 15,
  DTRACE_DOF_SECT_TYPE_PROBES = 16, DTRACE_DOF_SECT_TYPE_PRARGS = 17, DTRACE_DOF_SECT_TYPE_PROFFS = 18, DTRACE_DOF_SECT_TYPE_PRENOFFS = 26
}
 
enum  dtrace_dof_ident {
  DTRACE_DOF_ID_MAG0 = 0, DTRACE_DOF_ID_MAG1 = 1, DTRACE_DOF_ID_MAG2 = 2, DTRACE_DOF_ID_MAG3 = 3,
  DTRACE_DOF_ID_ENCODING = 5
}
 
enum  dtrace_dof_encoding { DTRACE_DOF_ENCODE_LSB = 1, DTRACE_DOF_ENCODE_MSB = 2 }
 

Functions

 DEF_VEC_O (dtrace_probe_arg_s)
 
 DEF_VEC_O (dtrace_probe_enabler_s)
 
static int dtrace_probe_is_linespec (const char **linespecp)
 
static void dtrace_process_dof_probe (struct objfile *objfile, struct gdbarch *gdbarch, VEC(probe_p)**probesp, struct dtrace_dof_hdr *dof, struct dtrace_dof_probe *probe, struct dtrace_dof_provider *provider, char *strtab, char *offtab, char *eofftab, char *argtab, uint64_t strtab_size)
 
static void dtrace_process_dof (asection *sect, struct objfile *objfile, VEC(probe_p)**probesp, struct dtrace_dof_hdr *dof)
 
static void dtrace_build_arg_exprs (struct dtrace_probe *probe, struct gdbarch *gdbarch)
 
static struct dtrace_probe_argdtrace_get_arg (struct dtrace_probe *probe, unsigned n, struct gdbarch *gdbarch)
 
static void dtrace_get_probes (VEC(probe_p)**probesp, struct objfile *objfile)
 
static int dtrace_probe_is_enabled (struct dtrace_probe *probe)
 
static CORE_ADDR dtrace_get_probe_address (struct probe *probe, struct objfile *objfile)
 
static unsigned dtrace_get_probe_argument_count (struct probe *probe_generic, struct frame_info *frame)
 
static int dtrace_can_evaluate_probe_arguments (struct probe *probe_generic)
 
static struct valuedtrace_evaluate_probe_argument (struct probe *probe_generic, unsigned n, struct frame_info *frame)
 
static void dtrace_compile_to_ax (struct probe *probe_generic, struct agent_expr *expr, struct axs_value *value, unsigned n)
 
static void dtrace_probe_destroy (struct probe *probe_generic)
 
static const char * dtrace_type_name (struct probe *probe_generic)
 
static void dtrace_gen_info_probes_table_header (VEC(info_probe_column_s)**heads)
 
static void dtrace_gen_info_probes_table_values (struct probe *probe_generic, VEC(const_char_ptr)**ret)
 
static void dtrace_enable_probe (struct probe *probe)
 
static void dtrace_disable_probe (struct probe *probe)
 
static void info_probes_dtrace_command (char *arg, int from_tty)
 
void _initialize_dtrace_probe (void)
 

Variables

const struct probe_ops dtrace_probe_ops
 

Macro Definition Documentation

#define DOF_UINT (   dof,
  field 
)
Value:
sizeof ((field)), \
(((dof)->dofh_ident[DTRACE_DOF_ID_ENCODING] \
? BFD_ENDIAN_BIG : BFD_ENDIAN_LITTLE))
ULONGEST extract_unsigned_integer(const gdb_byte *, int, enum bfd_endian)
Definition: findvar.c:84
bfd_byte gdb_byte
Definition: common-types.h:38

Definition at line 286 of file dtrace-probe.c.

Referenced by dtrace_process_dof(), and dtrace_process_dof_probe().

#define DTRACE_DOF_PTR (   dof,
  offset 
)    (&((char *) (dof))[(offset)])

Definition at line 297 of file dtrace-probe.c.

Referenced by dtrace_process_dof().

#define DTRACE_DOF_SECT (   dof,
  idx 
)
Value:
((struct dtrace_dof_sect *) \
DTRACE_DOF_PTR ((dof), \
DOF_UINT ((dof), (dof)->dofh_secoff) \
+ ((idx) * DOF_UINT ((dof), (dof)->dofh_secsize))))
#define DTRACE_DOF_PTR(dof, offset)
Definition: dtrace-probe.c:297
#define DOF_UINT(dof, field)
Definition: dtrace-probe.c:286

Definition at line 303 of file dtrace-probe.c.

Referenced by dtrace_process_dof().

#define SHT_SUNW_dof   0x6ffffff4

Definition at line 41 of file dtrace-probe.c.

Referenced by dtrace_get_probes().

Typedef Documentation

Definition at line 63 of file dtrace-probe.c.

Definition at line 76 of file dtrace-probe.c.

Enumeration Type Documentation

Enumerator
DTRACE_DOF_ENCODE_LSB 
DTRACE_DOF_ENCODE_MSB 

Definition at line 162 of file dtrace-probe.c.

Enumerator
DTRACE_DOF_ID_MAG0 
DTRACE_DOF_ID_MAG1 
DTRACE_DOF_ID_MAG2 
DTRACE_DOF_ID_MAG3 
DTRACE_DOF_ID_ENCODING 

Definition at line 146 of file dtrace-probe.c.

Enumerator
DTRACE_DOF_SECT_TYPE_NONE 
DTRACE_DOF_SECT_TYPE_ECBDESC 
DTRACE_DOF_SECT_TYPE_STRTAB 
DTRACE_DOF_SECT_TYPE_PROVIDER 
DTRACE_DOF_SECT_TYPE_PROBES 
DTRACE_DOF_SECT_TYPE_PRARGS 
DTRACE_DOF_SECT_TYPE_PROFFS 
DTRACE_DOF_SECT_TYPE_PRENOFFS 

Definition at line 117 of file dtrace-probe.c.

Function Documentation

void _initialize_dtrace_probe ( void  )
DEF_VEC_O ( dtrace_probe_arg_s  )
DEF_VEC_O ( dtrace_probe_enabler_s  )
static void dtrace_build_arg_exprs ( struct dtrace_probe probe,
struct gdbarch gdbarch 
)
static
static int dtrace_can_evaluate_probe_arguments ( struct probe probe_generic)
static
static void dtrace_compile_to_ax ( struct probe probe_generic,
struct agent_expr expr,
struct axs_value value,
unsigned  n 
)
static
static void dtrace_disable_probe ( struct probe probe)
static
static void dtrace_enable_probe ( struct probe probe)
static
static struct value* dtrace_evaluate_probe_argument ( struct probe probe_generic,
unsigned  n,
struct frame_info frame 
)
static
static void dtrace_gen_info_probes_table_header ( VEC(info_probe_column_s)**  heads)
static
static void dtrace_gen_info_probes_table_values ( struct probe probe_generic,
VEC(const_char_ptr)**  ret 
)
static
static struct dtrace_probe_arg* dtrace_get_arg ( struct dtrace_probe probe,
unsigned  n,
struct gdbarch gdbarch 
)
static

Definition at line 605 of file dtrace-probe.c.

References dtrace_build_arg_exprs(), and VEC_index.

Referenced by dtrace_compile_to_ax(), and dtrace_evaluate_probe_argument().

static CORE_ADDR dtrace_get_probe_address ( struct probe probe,
struct objfile objfile 
)
static
static unsigned dtrace_get_probe_argument_count ( struct probe probe_generic,
struct frame_info frame 
)
static

Definition at line 683 of file dtrace-probe.c.

References dtrace_probe_ops, gdb_assert, probe::pops, and dtrace_probe::probe_argc.

static void dtrace_get_probes ( VEC(probe_p)**  probesp,
struct objfile objfile 
)
static
static void dtrace_probe_destroy ( struct probe probe_generic)
static
static int dtrace_probe_is_enabled ( struct dtrace_probe probe)
static
static int dtrace_probe_is_linespec ( const char **  linespecp)
static

Definition at line 102 of file dtrace-probe.c.

References probe_is_linespec_by_keyword().

static void dtrace_process_dof ( asection *  sect,
struct objfile objfile,
VEC(probe_p)**  probesp,
struct dtrace_dof_hdr dof 
)
static
static void dtrace_process_dof_probe ( struct objfile objfile,
struct gdbarch gdbarch,
VEC(probe_p)**  probesp,
struct dtrace_dof_hdr dof,
struct dtrace_dof_probe probe,
struct dtrace_dof_provider provider,
char *  strtab,
char *  offtab,
char *  eofftab,
char *  argtab,
uint64_t  strtab_size 
)
static
static const char* dtrace_type_name ( struct probe probe_generic)
static

Definition at line 766 of file dtrace-probe.c.

References dtrace_probe_ops, gdb_assert, and probe::pops.

static void info_probes_dtrace_command ( char *  arg,
int  from_tty 
)
static

Definition at line 900 of file dtrace-probe.c.

References info_probes_for_ops().

Referenced by _initialize_dtrace_probe().

Variable Documentation

const struct probe_ops dtrace_probe_ops
Initial value:
=
{
NULL,
NULL,
}
static void dtrace_compile_to_ax(struct probe *probe_generic, struct agent_expr *expr, struct axs_value *value, unsigned n)
Definition: dtrace-probe.c:724
static int dtrace_can_evaluate_probe_arguments(struct probe *probe_generic)
Definition: dtrace-probe.c:696
static void dtrace_get_probes(VEC(probe_p)**probesp, struct objfile *objfile)
Definition: dtrace-probe.c:617
static struct value * dtrace_evaluate_probe_argument(struct probe *probe_generic, unsigned n, struct frame_info *frame)
Definition: dtrace-probe.c:707
static void dtrace_disable_probe(struct probe *probe)
Definition: dtrace-probe.c:843
static int dtrace_probe_is_linespec(const char **linespecp)
Definition: dtrace-probe.c:102
static const char * dtrace_type_name(struct probe *probe_generic)
Definition: dtrace-probe.c:766
static void dtrace_gen_info_probes_table_values(struct probe *probe_generic, VEC(const_char_ptr)**ret)
Definition: dtrace-probe.c:788
static void dtrace_probe_destroy(struct probe *probe_generic)
Definition: dtrace-probe.c:745
static CORE_ADDR dtrace_get_probe_address(struct probe *probe, struct objfile *objfile)
Definition: dtrace-probe.c:673
static unsigned dtrace_get_probe_argument_count(struct probe *probe_generic, struct frame_info *frame)
Definition: dtrace-probe.c:683
static void dtrace_enable_probe(struct probe *probe)
Definition: dtrace-probe.c:811
static void dtrace_gen_info_probes_table_header(VEC(info_probe_column_s)**heads)
Definition: dtrace-probe.c:775

Definition at line 878 of file dtrace-probe.c.

Referenced by dtrace_can_evaluate_probe_arguments(), dtrace_compile_to_ax(), dtrace_disable_probe(), dtrace_enable_probe(), dtrace_evaluate_probe_argument(), dtrace_gen_info_probes_table_values(), dtrace_get_probe_address(), dtrace_get_probe_argument_count(), dtrace_probe_destroy(), dtrace_process_dof_probe(), and dtrace_type_name().