aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog14
-rw-r--r--gdb/breakpoint.c119
2 files changed, 36 insertions, 97 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 7f77310..3511bc0 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,17 @@
+2011-04-27 Pedro Alves <pedro@codesourcery.com>
+
+ * breakpoint.c (user_settable_breakpoint): Delete.
+ (user_breakpoint_p): Remove check on user_settable_breakpoint.
+ (delete_command): Check user_breakpoint_p instead of looking at
+ the breakpoint's type.
+ (disable_command): Ditto.
+ (enable_command): Ditto.
+ (delete_trace_command): Use user_breakpoint_p instead of looking
+ at the breakpoint number directly. When checking if there are
+ user visible tracepoints, in order to know whether to ask the user
+ for confirmation, check whether the breakpoint is actually a
+ tracepoint.
+
2011-04-27 Vladimir Prus <vladimir@codesourcery.com>
* python/py-breakpoint.c (gdbpy_breakpoint_created): Fix
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index bf6b1ef..01bb08c 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -5159,27 +5159,13 @@ gdb_breakpoint_query (struct ui_out *uiout, int bnum,
return GDB_RC_OK;
}
-/* Return non-zero if B is user settable (breakpoints, watchpoints,
- catchpoints, et.al.). */
-
-static int
-user_settable_breakpoint (const struct breakpoint *b)
-{
- return (b->type == bp_breakpoint
- || b->type == bp_catchpoint
- || b->type == bp_hardware_breakpoint
- || is_tracepoint (b)
- || is_watchpoint (b)
- || b->type == bp_gnu_ifunc_resolver);
-}
-
/* Return true if this breakpoint was set by the user, false if it is
internal or momentary. */
int
user_breakpoint_p (struct breakpoint *b)
{
- return user_settable_breakpoint (b) && b->number > 0;
+ return b->number > 0;
}
/* Print information on user settable breakpoint (watchpoint, etc)
@@ -10592,45 +10578,23 @@ delete_command (char *arg, int from_tty)
{
int breaks_to_delete = 0;
- /* Delete all breakpoints if no argument.
- Do not delete internal or call-dummy breakpoints, these have
- to be deleted with an explicit breakpoint number argument. */
+ /* Delete all breakpoints if no argument. Do not delete
+ internal breakpoints, these have to be deleted with an
+ explicit breakpoint number argument. */
ALL_BREAKPOINTS (b)
- {
- if (b->type != bp_call_dummy
- && b->type != bp_std_terminate
- && b->type != bp_shlib_event
- && b->type != bp_jit_event
- && b->type != bp_thread_event
- && b->type != bp_overlay_event
- && b->type != bp_longjmp_master
- && b->type != bp_std_terminate_master
- && b->type != bp_exception_master
- && b->number >= 0)
+ if (user_breakpoint_p (b))
{
breaks_to_delete = 1;
break;
}
- }
/* Ask user only if there are some breakpoints to delete. */
if (!from_tty
|| (breaks_to_delete && query (_("Delete all breakpoints? "))))
{
ALL_BREAKPOINTS_SAFE (b, b_tmp)
- {
- if (b->type != bp_call_dummy
- && b->type != bp_std_terminate
- && b->type != bp_shlib_event
- && b->type != bp_thread_event
- && b->type != bp_jit_event
- && b->type != bp_overlay_event
- && b->type != bp_longjmp_master
- && b->type != bp_std_terminate_master
- && b->type != bp_exception_master
- && b->number >= 0)
+ if (user_breakpoint_p (b))
delete_breakpoint (b);
- }
}
}
else
@@ -11474,31 +11438,14 @@ do_map_disable_breakpoint (struct breakpoint *b, void *ignore)
static void
disable_command (char *args, int from_tty)
{
- struct breakpoint *bpt;
-
if (args == 0)
- ALL_BREAKPOINTS (bpt)
- switch (bpt->type)
- {
- case bp_none:
- warning (_("attempted to disable apparently deleted breakpoint #%d?"),
- bpt->number);
- break;
- case bp_breakpoint:
- case bp_tracepoint:
- case bp_fast_tracepoint:
- case bp_static_tracepoint:
- case bp_catchpoint:
- case bp_hardware_breakpoint:
- case bp_watchpoint:
- case bp_hardware_watchpoint:
- case bp_read_watchpoint:
- case bp_access_watchpoint:
- disable_breakpoint (bpt);
- break;
- default:
- break;
- }
+ {
+ struct breakpoint *bpt;
+
+ ALL_BREAKPOINTS (bpt)
+ if (user_breakpoint_p (bpt))
+ disable_breakpoint (bpt);
+ }
else if (strchr (args, '.'))
{
struct bp_location *loc = find_location_by_number (args);
@@ -11576,31 +11523,14 @@ do_map_enable_breakpoint (struct breakpoint *b, void *ignore)
static void
enable_command (char *args, int from_tty)
{
- struct breakpoint *bpt;
-
if (args == 0)
- ALL_BREAKPOINTS (bpt)
- switch (bpt->type)
- {
- case bp_none:
- warning (_("attempted to enable apparently deleted breakpoint #%d?"),
- bpt->number);
- break;
- case bp_breakpoint:
- case bp_tracepoint:
- case bp_fast_tracepoint:
- case bp_static_tracepoint:
- case bp_catchpoint:
- case bp_hardware_breakpoint:
- case bp_watchpoint:
- case bp_hardware_watchpoint:
- case bp_read_watchpoint:
- case bp_access_watchpoint:
- enable_breakpoint (bpt);
- break;
- default:
- break;
- }
+ {
+ struct breakpoint *bpt;
+
+ ALL_BREAKPOINTS (bpt)
+ if (user_breakpoint_p (bpt))
+ enable_breakpoint (bpt);
+ }
else if (strchr (args, '.'))
{
struct bp_location *loc = find_location_by_number (args);
@@ -12143,24 +12073,19 @@ delete_trace_command (char *arg, int from_tty)
have to be deleted with an explicit breakpoint number
argument. */
ALL_TRACEPOINTS (b)
- {
- if (b->number >= 0)
+ if (is_tracepoint (b) && user_breakpoint_p (b))
{
breaks_to_delete = 1;
break;
}
- }
/* Ask user only if there are some breakpoints to delete. */
if (!from_tty
|| (breaks_to_delete && query (_("Delete all tracepoints? "))))
{
ALL_BREAKPOINTS_SAFE (b, b_tmp)
- {
- if (is_tracepoint (b)
- && b->number >= 0)
+ if (is_tracepoint (b) && user_breakpoint_p (b))
delete_breakpoint (b);
- }
}
}
else