X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fbreakpoint.h;h=906803132822211181278ca8e3ffe7f9f987201f;hb=8e5cb9a54e156ba24a439aefa7b35e53b4cb0374;hp=66375b68c27b607c47823fe34b7d3fae8dfa4d8e;hpb=8588b356927dabd582d1d67f87a161027cb2aed1;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h index 66375b68c2..9068031328 100644 --- a/gdb/breakpoint.h +++ b/gdb/breakpoint.h @@ -1,5 +1,5 @@ /* Data structures associated with breakpoints in GDB. - Copyright (C) 1992-2018 Free Software Foundation, Inc. + Copyright (C) 1992-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -21,10 +21,10 @@ #include "frame.h" #include "value.h" -#include "vec.h" +#include "common/vec.h" #include "ax.h" #include "command.h" -#include "break-common.h" +#include "common/break-common.h" #include "probe.h" #include "location.h" #include @@ -42,6 +42,16 @@ struct linespec_result; struct linespec_sals; struct inferior; +/* Enum for exception-handling support in 'catch throw', 'catch rethrow', + 'catch catch' and the MI equivalent. */ + +enum exception_event_kind +{ + EX_EVENT_THROW, + EX_EVENT_RETHROW, + EX_EVENT_CATCH +}; + /* Why are we removing the breakpoint from the target? */ enum remove_bp_reason @@ -301,31 +311,19 @@ enum bp_loc_type bp_loc_other /* Miscellaneous... */ }; -/* This structure is a collection of function pointers that, if - available, will be called instead of performing the default action - for this bp_loc_type. */ - -struct bp_location_ops -{ - /* Destructor. Releases everything from SELF (but not SELF - itself). */ - void (*dtor) (struct bp_location *self); -}; - class bp_location { public: bp_location () = default; - bp_location (const bp_location_ops *ops, breakpoint *owner); + bp_location (breakpoint *owner); + + virtual ~bp_location (); /* Chain pointer to the next breakpoint location for the same parent breakpoint. */ bp_location *next = NULL; - /* Methods associated with this location. */ - const bp_location_ops *ops = NULL; - /* The reference count. */ int refc = 0; @@ -1682,4 +1680,19 @@ extern void print_breakpoint (breakpoint *bp); /* Command element for the 'commands' command. */ extern cmd_list_element *commands_cmd_element; +/* Whether to use the fixed output when printing information about a + multi-location breakpoint (see PR 9659). */ + +extern bool fix_multi_location_breakpoint_output_globally; + +/* Deal with "catch catch", "catch throw", and "catch rethrow" commands and + the MI equivalents. Sets up to catch events of type EX_EVENT. When + TEMPFLAG is true only the next matching event is caught after which the + catch-point is deleted. If REGEX is not NULL then only exceptions whose + type name matches REGEX will trigger the event. */ + +extern void catch_exception_event (enum exception_event_kind ex_event, + const char *regex, bool tempflag, + int from_tty); + #endif /* !defined (BREAKPOINT_H) */