40 bool is_load_,
const char *arg)
46 : new compiled_regex (arg, REG_NOSUB, _(
"Invalid regexp")))
68 gdb::unique_xmalloc_ptr<char>
regex;
96 if (&other == bl->
owner)
107 if (other.breakpoint_hit (&other_bl, aspace, bp_addr, ws))
123 ||
compiled->exec (iter->so_name, 0, NULL, 0) == 0)
132 ||
compiled->exec (iter.c_str (), 0, NULL, 0) == 0)
149 uiout->
text (
"Temporary catchpoint ");
151 uiout->
text (
"Catchpoint ");
170 if (opts.addressprint)
181 msg = string_printf (_(
"load of library matching %s"),
184 msg = _(
"load of library");
189 msg = string_printf (_(
"unload of library matching %s"),
192 msg = _(
"unload of library");
229 arg = skip_spaces (arg);
233 auto c = gdb::make_unique<solib_catchpoint> (
gdbarch, is_temp,
nullptr,
248 const int enabled = 1;
273Usage: catch load [REGEX]\n\
274If REGEX is given, only stop for libraries matching the regular expression."),
280Usage: catch unload [REGEX]\n\
281If REGEX is given, only stop for libraries matching the regular expression."),
void annotate_field(int num)
void annotate_catchpoint(int num)
struct gdbarch * get_current_arch(void)
static void catch_load_command_1(const char *arg, int from_tty, struct cmd_list_element *command)
void add_solib_catchpoint(const char *arg, bool is_load, bool is_temp, bool enabled)
static void catch_load_or_unload(const char *arg, int from_tty, int is_load, struct cmd_list_element *command)
void _initialize_break_catch_load()
static void catch_unload_command_1(const char *arg, int from_tty, struct cmd_list_element *command)
void add_catch_command(const char *name, const char *docstring, cmd_func_ftype *func, completer_ftype *completer, void *user_data_catch, void *user_data_tcatch)
const char * bpdisp_text(enum bpdisp disp)
breakpoint * install_breakpoint(int internal, std::unique_ptr< breakpoint > &&arg, int update_gll)
void print_solib_event(bool is_catchpoint)
breakpoint_range all_breakpoints()
void maybe_print_thread_hit_breakpoint(struct ui_out *uiout)
void field_string(const char *fldname, const char *string, const ui_file_style &style=ui_file_style())
void field_signed(const char *fldname, LONGEST value)
void field_skip(const char *fldname)
void text(const char *string)
bool is_mi_like_p() const
struct program_space * current_program_space
enum bp_print_how print_it
gdb::unique_xmalloc_ptr< char > cond_string
std::vector< std::string > deleted_solibs
std::vector< struct so_list * > added_solibs
int breakpoint_hit(const struct bp_location *bl, const address_space *aspace, CORE_ADDR bp_addr, const target_waitstatus &ws) override
int remove_location(struct bp_location *, enum remove_bp_reason reason) override
void print_mention() const override
int insert_location(struct bp_location *) override
solib_catchpoint(struct gdbarch *gdbarch, bool temp, const char *cond_string, bool is_load_, const char *arg)
std::unique_ptr< compiled_regex > compiled
void check_status(struct bpstat *bs) override
void print_recreate(struct ui_file *fp) const override
gdb::unique_xmalloc_ptr< char > regex
enum print_stop_action print_it(const bpstat *bs) const override
bool print_one(const bp_location **) const override
target_waitkind kind() const
void gdb_printf(struct ui_file *stream, const char *format,...)
void get_user_print_options(struct value_print_options *opts)