static void check_status_exception_catchpoint (struct bpstats *bs) { struct exception_catchpoint *self = (struct exception_catchpoint *) bs->breakpoint_at; char *type_name = NULL; bkpt_breakpoint_ops.check_status (bs); if (bs->stop == 0) return; if (self->pattern == NULL) return; TRY { struct value *typeinfo_arg; char *canon; fetch_probe_arguments (NULL, &typeinfo_arg); type_name = cplus_typename_from_type_info (typeinfo_arg); canon = cp_canonicalize_string (type_name); if (canon != NULL) { xfree (type_name); type_name = canon; } } CATCH (e, RETURN_MASK_ERROR) { exception_print (gdb_stderr, e); }
static void check_status_exception_catchpoint (struct bpstats *bs) { struct exception_catchpoint *self = (struct exception_catchpoint *) bs->breakpoint_at; std::string type_name; bkpt_breakpoint_ops.check_status (bs); if (bs->stop == 0) return; if (self->pattern == NULL) return; TRY { struct value *typeinfo_arg; std::string canon; fetch_probe_arguments (NULL, &typeinfo_arg); type_name = cplus_typename_from_type_info (typeinfo_arg); canon = cp_canonicalize_string (type_name.c_str ()); if (!canon.empty ()) std::swap (type_name, canon); } CATCH (e, RETURN_MASK_ERROR) { exception_print (gdb_stderr, e); }