GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Functions | Variables
probe.c File Reference
#include "defs.h"
#include "probe.h"
#include "command.h"
#include "cli/cli-cmds.h"
#include "cli/cli-utils.h"
#include "objfiles.h"
#include "symtab.h"
#include "progspace.h"
#include "filenames.h"
#include "linespec.h"
#include "gdbsupport/gdb_regex.h"
#include "frame.h"
#include "arch-utils.h"
#include "value.h"
#include "ax.h"
#include "ax-gdb.h"
#include "location.h"
#include <ctype.h>
#include <algorithm>
#include "gdbsupport/gdb_optional.h"

Go to the source code of this file.

Classes

class  any_static_probe_ops
 

Functions

static void parse_probes_in_pspace (const static_probe_ops *spops, struct program_space *search_pspace, const char *objfile_namestr, const char *provider, const char *name, std::vector< symtab_and_line > *result)
 
std::vector< symtab_and_lineparse_probes (const location_spec *locspec, struct program_space *search_pspace, struct linespec_result *canonical)
 
std::vector< probe * > find_probes_in_objfile (struct objfile *objfile, const char *provider, const char *name)
 
struct bound_probe find_probe_by_pc (CORE_ADDR pc)
 
static std::vector< bound_probecollect_probes (const std::string &objname, const std::string &provider, const std::string &probe_name, const static_probe_ops *spops)
 
static bool compare_probes (const bound_probe &a, const bound_probe &b)
 
static void gen_ui_out_table_header_info (const std::vector< bound_probe > &probes, const static_probe_ops *spops)
 
static void print_ui_out_not_applicables (const static_probe_ops *spops)
 
static void print_ui_out_info (probe *probe)
 
static int get_number_extra_fields (const static_probe_ops *spops)
 
static bool exists_probe_with_spops (const std::vector< bound_probe > &probes, const static_probe_ops *spops)
 
static void parse_probe_linespec (const char *str, std::string *provider, std::string *probe_name, std::string *objname)
 
void info_probes_for_spops (const char *arg, int from_tty, const static_probe_ops *spops)
 
static void info_probes_command (const char *arg, int from_tty)
 
static void enable_probes_command (const char *arg, int from_tty)
 
static void disable_probes_command (const char *arg, int from_tty)
 
bool ignore_probe_p (const char *provider, const char *name, const char *objfile_name, const char *type)
 
static void ignore_probes_command (const char *arg, int from_tty)
 
struct valueprobe_safe_evaluate_at_pc (frame_info_ptr frame, unsigned n)
 
const struct static_probe_opsprobe_linespec_to_static_ops (const char **linespecp)
 
int probe_is_linespec_by_keyword (const char **linespecp, const char *const *keywords)
 
struct cmd_list_element ** info_probes_cmdlist_get (void)
 
static struct valuecompute_probe_arg (struct gdbarch *arch, struct internalvar *ivar, void *data)
 
static void compile_probe_arg (struct internalvar *ivar, struct agent_expr *expr, struct axs_value *value, void *data)
 
void _initialize_probe ()
 

Variables

const any_static_probe_ops any_static_probe_ops {}
 
static bool ignore_probes_p = false
 
static bool ignore_probes_idx = 0
 
static bool ignore_probes_verbose_p
 
static gdb::optional< compiled_regex > ignore_probes_prov_pat [2]
 
static gdb::optional< compiled_regex > ignore_probes_name_pat [2]
 
static gdb::optional< compiled_regex > ignore_probes_obj_pat [2]
 
static const struct internalvar_funcs probe_funcs
 
std::vector< const static_probe_ops * > all_static_probe_ops
 

Function Documentation

◆ _initialize_probe()

void _initialize_probe ( )

Definition at line 979 of file probe.c.

Referenced by initialize_all_files().

◆ collect_probes()

static std::vector< bound_probe > collect_probes ( const std::string & objname,
const std::string & provider,
const std::string & probe_name,
const static_probe_ops * spops )
static

◆ compare_probes()

static bool compare_probes ( const bound_probe & a,
const bound_probe & b )
static

◆ compile_probe_arg()

static void compile_probe_arg ( struct internalvar * ivar,
struct agent_expr * expr,
struct axs_value * value,
void * data )
static

◆ compute_probe_arg()

static struct value * compute_probe_arg ( struct gdbarch * arch,
struct internalvar * ivar,
void * data )
static

◆ disable_probes_command()

static void disable_probes_command ( const char * arg,
int from_tty )
static

◆ enable_probes_command()

static void enable_probes_command ( const char * arg,
int from_tty )
static

◆ exists_probe_with_spops()

static bool exists_probe_with_spops ( const std::vector< bound_probe > & probes,
const static_probe_ops * spops )
static

Definition at line 452 of file probe.c.

References probe::get_static_ops().

Referenced by info_probes_for_spops().

◆ find_probe_by_pc()

struct bound_probe find_probe_by_pc ( CORE_ADDR pc)

◆ find_probes_in_objfile()

std::vector< probe * > find_probes_in_objfile ( struct objfile * objfile,
const char * provider,
const char * name )

◆ gen_ui_out_table_header_info()

static void gen_ui_out_table_header_info ( const std::vector< bound_probe > & probes,
const static_probe_ops * spops )
static

◆ get_number_extra_fields()

static int get_number_extra_fields ( const static_probe_ops * spops)
static

Definition at line 443 of file probe.c.

References static_probe_ops::gen_info_probes_table_header().

Referenced by info_probes_for_spops().

◆ ignore_probe_p()

bool ignore_probe_p ( const char * provider,
const char * name,
const char * objfile_name,
const char * type )

◆ ignore_probes_command()

static void ignore_probes_command ( const char * arg,
int from_tty )
static

◆ info_probes_cmdlist_get()

struct cmd_list_element ** info_probes_cmdlist_get ( void )

Definition at line 878 of file probe.c.

References add_prefix_cmd(), class_info, info_probes_command(), and infolist.

◆ info_probes_command()

static void info_probes_command ( const char * arg,
int from_tty )
static

Definition at line 608 of file probe.c.

References info_probes_for_spops().

Referenced by info_probes_cmdlist_get().

◆ info_probes_for_spops()

void info_probes_for_spops ( const char * arg,
int from_tty,
const static_probe_ops * spops )

◆ parse_probe_linespec()

static void parse_probe_linespec ( const char * str,
std::string * provider,
std::string * probe_name,
std::string * objname )
static

◆ parse_probes()

std::vector< symtab_and_line > parse_probes ( const location_spec * locspec,
struct program_space * search_pspace,
struct linespec_result * canonical )

◆ parse_probes_in_pspace()

static void parse_probes_in_pspace ( const static_probe_ops * spops,
struct program_space * search_pspace,
const char * objfile_namestr,
const char * provider,
const char * name,
std::vector< symtab_and_line > * result )
static

◆ print_ui_out_info()

static void print_ui_out_info ( probe * probe)
static

◆ print_ui_out_not_applicables()

static void print_ui_out_not_applicables ( const static_probe_ops * spops)
static

Definition at line 402 of file probe.c.

References current_uiout, and static_probe_ops::gen_info_probes_table_header().

Referenced by info_probes_for_spops().

◆ probe_is_linespec_by_keyword()

int probe_is_linespec_by_keyword ( const char ** linespecp,
const char *const * keywords )

◆ probe_linespec_to_static_ops()

const struct static_probe_ops * probe_linespec_to_static_ops ( const char ** linespecp)

Definition at line 808 of file probe.c.

References all_static_probe_ops.

Referenced by parse_probes(), and string_to_location_spec_basic().

◆ probe_safe_evaluate_at_pc()

struct value * probe_safe_evaluate_at_pc ( frame_info_ptr frame,
unsigned n )

Variable Documentation

◆ all_static_probe_ops

std::vector<const static_probe_ops *> all_static_probe_ops

Definition at line 975 of file probe.c.

Referenced by elf_get_probes(), info_probes_for_spops(), and probe_linespec_to_static_ops().

◆ any_static_probe_ops

const any_static_probe_ops any_static_probe_ops {}

Definition at line 63 of file probe.c.

◆ ignore_probes_idx

bool ignore_probes_idx = 0
static

Definition at line 684 of file probe.c.

Referenced by ignore_probe_p(), and ignore_probes_command().

◆ ignore_probes_name_pat

gdb::optional<compiled_regex> ignore_probes_name_pat[2]
static

Definition at line 687 of file probe.c.

Referenced by ignore_probe_p(), and ignore_probes_command().

◆ ignore_probes_obj_pat

gdb::optional<compiled_regex> ignore_probes_obj_pat[2]
static

Definition at line 688 of file probe.c.

Referenced by ignore_probe_p(), and ignore_probes_command().

◆ ignore_probes_p

bool ignore_probes_p = false
static

Definition at line 683 of file probe.c.

Referenced by ignore_probe_p(), and ignore_probes_command().

◆ ignore_probes_prov_pat

gdb::optional<compiled_regex> ignore_probes_prov_pat[2]
static

Definition at line 686 of file probe.c.

Referenced by ignore_probe_p(), and ignore_probes_command().

◆ ignore_probes_verbose_p

bool ignore_probes_verbose_p
static

Definition at line 685 of file probe.c.

Referenced by ignore_probe_p(), and ignore_probes_command().

◆ probe_funcs

const struct internalvar_funcs probe_funcs
static
Initial value:
=
{
}
static void compile_probe_arg(struct internalvar *ivar, struct agent_expr *expr, struct axs_value *value, void *data)
Definition probe.c:935
static struct value * compute_probe_arg(struct gdbarch *arch, struct internalvar *ivar, void *data)
Definition probe.c:904

Definition at line 968 of file probe.c.