GDB (xrefs)
|
#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_line > | parse_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_probe > | collect_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 value * | probe_safe_evaluate_at_pc (frame_info_ptr frame, unsigned n) |
const struct static_probe_ops * | probe_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 value * | compute_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 |
void _initialize_probe | ( | ) |
Definition at line 979 of file probe.c.
Referenced by initialize_all_files().
|
static |
Definition at line 279 of file probe.c.
References current_program_space, bound_probe::objfile, objfile_name(), program_space::objfiles(), objfile::sf, sym_probe_fns::sym_get_probes, and sym_fns::sym_probe_fns.
Referenced by disable_probes_command(), enable_probes_command(), and info_probes_for_spops().
|
static |
Definition at line 332 of file probe.c.
References probe::get_address(), probe::get_name(), probe::get_provider(), bound_probe::objfile, objfile_name(), and bound_probe::prob.
Referenced by info_probes_for_spops().
|
static |
Definition at line 935 of file probe.c.
References ax_const_l(), axs_rvalue, builtin_type::builtin_int, builtin_type(), probe::compile_to_ax(), find_probe_by_pc(), probe::get_argument_count(), bound_probe::prob, and value::type().
|
static |
Definition at line 904 of file probe.c.
References probe::evaluate_argument(), find_probe_by_pc(), probe::get_argument_count(), get_frame_pc(), get_selected_frame(), bound_probe::prob, and value_from_longest().
|
static |
Definition at line 651 of file probe.c.
References static_probe_ops::can_enable(), collect_probes(), current_uiout, probe::disable(), probe::get_name(), probe::get_provider(), probe::get_static_ops(), and parse_probe_linespec().
|
static |
Definition at line 616 of file probe.c.
References static_probe_ops::can_enable(), collect_probes(), current_uiout, probe::enable(), probe::get_name(), probe::get_provider(), probe::get_static_ops(), and parse_probe_linespec().
|
static |
Definition at line 452 of file probe.c.
References probe::get_static_ops().
Referenced by info_probes_for_spops().
struct bound_probe find_probe_by_pc | ( | CORE_ADDR | pc | ) |
Definition at line 243 of file probe.c.
References current_program_space, bound_probe::objfile, program_space::objfiles(), bound_probe::prob, objfile::sect_index_text, objfile::sf, sym_probe_fns::sym_get_probes, and sym_fns::sym_probe_fns.
Referenced by check_exception_resume(), compile_probe_arg(), compute_probe_arg(), fetch_probe_arguments(), and probe_safe_evaluate_at_pc().
std::vector< probe * > find_probes_in_objfile | ( | struct objfile * | objfile, |
const char * | provider, | ||
const char * | name ) |
Definition at line 216 of file probe.c.
References name, objfile::sf, sym_probe_fns::sym_get_probes, and sym_fns::sym_probe_fns.
Referenced by create_exception_master_breakpoint_probe(), create_longjmp_master_breakpoint_probe(), and svr4_find_and_create_probe_breakpoints().
|
static |
Definition at line 354 of file probe.c.
References current_uiout, static_probe_ops::gen_info_probes_table_header(), probe::gen_info_probes_table_values(), probe::get_static_ops(), and ui_left.
Referenced by info_probes_for_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().
bool ignore_probe_p | ( | const char * | provider, |
const char * | name, | ||
const char * | objfile_name, | ||
const char * | type ) |
Definition at line 693 of file probe.c.
References gdb_printf(), gdb_stdlog, ignore_probes_idx, ignore_probes_name_pat, ignore_probes_obj_pat, ignore_probes_p, ignore_probes_prov_pat, ignore_probes_verbose_p, name, and objfile_name().
Referenced by handle_stap_probe().
|
static |
Definition at line 724 of file probe.c.
References extract_arg(), gdb_printf(), gdb_stdout, ignore_probes_idx, ignore_probes_name_pat, ignore_probes_obj_pat, ignore_probes_p, ignore_probes_prov_pat, ignore_probes_verbose_p, and parse_probe_linespec().
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.
|
static |
Definition at line 608 of file probe.c.
References info_probes_for_spops().
Referenced by info_probes_cmdlist_get().
void info_probes_for_spops | ( | const char * | arg, |
int | from_tty, | ||
const static_probe_ops * | spops ) |
Definition at line 483 of file probe.c.
References all_static_probe_ops, collect_probes(), compare_probes(), current_uiout, exists_probe_with_spops(), gdbarch_addr_bit(), gen_ui_out_table_header_info(), get_current_arch(), probe::get_gdbarch(), probe::get_name(), get_number_extra_fields(), probe::get_provider(), probe::get_relocated_address(), probe::get_static_ops(), objfile_name(), parse_probe_linespec(), print_ui_out_info(), print_ui_out_not_applicables(), static_probe_ops::type_name(), and ui_left.
Referenced by info_probes_command(), info_probes_dtrace_command(), and info_probes_stap_command().
|
static |
Definition at line 466 of file probe.c.
References extract_arg().
Referenced by disable_probes_command(), enable_probes_command(), ignore_probes_command(), and info_probes_for_spops().
std::vector< symtab_and_line > parse_probes | ( | const location_spec * | locspec, |
struct program_space * | search_pspace, | ||
struct linespec_result * | canonical ) |
Definition at line 117 of file probe.c.
References linespec_result::locspec, name, new_probe_location_spec(), parse_probes_in_pspace(), linespec_result::pre_expanded, probe_linespec_to_static_ops(), PROBE_LOCATION_SPEC, program_spaces, linespec_result::special_display, location_spec::to_string(), and location_spec::type().
Referenced by bkpt_probe_create_sals_from_location_spec(), bkpt_probe_decode_location_spec(), and exception_catchpoint::re_set().
|
static |
Definition at line 69 of file probe.c.
References symtab_and_line::explicit_pc, find_pc_overlay(), name, symtab_and_line::objfile, objfile_name(), program_space::objfiles(), symtab_and_line::pc, symtab_and_line::prob, symtab_and_line::pspace, symtab_and_line::section, objfile::sf, sym_probe_fns::sym_get_probes, and sym_fns::sym_probe_fns.
Referenced by parse_probes().
|
static |
Definition at line 415 of file probe.c.
References current_uiout, info_probe_column::field_name, static_probe_ops::gen_info_probes_table_header(), probe::gen_info_probes_table_values(), and probe::get_static_ops().
Referenced by info_probes_for_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().
int probe_is_linespec_by_keyword | ( | const char ** | linespecp, |
const char *const * | keywords ) |
Definition at line 820 of file probe.c.
Referenced by dtrace_static_probe_ops::is_linespec(), any_static_probe_ops::is_linespec(), and stap_static_probe_ops::is_linespec().
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().
struct value * probe_safe_evaluate_at_pc | ( | frame_info_ptr | frame, |
unsigned | n ) |
Definition at line 789 of file probe.c.
References probe::evaluate_argument(), find_probe_by_pc(), probe::get_argument_count(), get_frame_arch(), and get_frame_pc().
Referenced by insert_exception_resume_from_probe(), and process_event_stop_test().
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().
|
static |
Definition at line 684 of file probe.c.
Referenced by ignore_probe_p(), and ignore_probes_command().
|
static |
Definition at line 687 of file probe.c.
Referenced by ignore_probe_p(), and ignore_probes_command().
|
static |
Definition at line 688 of file probe.c.
Referenced by ignore_probe_p(), and ignore_probes_command().
|
static |
Definition at line 683 of file probe.c.
Referenced by ignore_probe_p(), and ignore_probes_command().
|
static |
Definition at line 686 of file probe.c.
Referenced by ignore_probe_p(), and ignore_probes_command().
|
static |
Definition at line 685 of file probe.c.
Referenced by ignore_probe_p(), and ignore_probes_command().
|
static |