aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kratochvil <jan.kratochvil@redhat.com>2011-08-21 14:33:07 +0000
committerJan Kratochvil <jan.kratochvil@redhat.com>2011-08-21 14:33:07 +0000
commitabf85f464b67b4d7da4511fc293af8c8b0c4dc0a (patch)
tree68de5dfc0e1a0aab22c694248627ec111d622a1f
parent66c70f7d554be3b1c4267e7213165aee3a59b0b1 (diff)
downloadgdb-abf85f464b67b4d7da4511fc293af8c8b0c4dc0a.zip
gdb-abf85f464b67b4d7da4511fc293af8c8b0c4dc0a.tar.gz
gdb-abf85f464b67b4d7da4511fc293af8c8b0c4dc0a.tar.bz2
gdb/
Code cleanup. * breakpoint.c (bpstat_clear_actions): Remove clearing of commands_left. (command_line_is_silent): New function. (bpstat_do_actions_1): No longer use commands_left, use command_line_is_silent for commands. (bpstat_alloc): Remove clearing of commands_left. (bpstat_stop_status): Remove initialization of commands_left, use command_line_is_silent. * breakpoint.h (struct bpstats): Remove commands_left.
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/breakpoint.c37
-rw-r--r--gdb/breakpoint.h4
3 files changed, 33 insertions, 20 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index f6d8a17..46b77d2 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,15 @@
+2011-08-21 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Code cleanup.
+ * breakpoint.c (bpstat_clear_actions): Remove clearing of commands_left.
+ (command_line_is_silent): New function.
+ (bpstat_do_actions_1): No longer use commands_left, use
+ command_line_is_silent for commands.
+ (bpstat_alloc): Remove clearing of commands_left.
+ (bpstat_stop_status): Remove initialization of commands_left, use
+ command_line_is_silent.
+ * breakpoint.h (struct bpstats): Remove commands_left.
+
2011-08-18 Keith Seitz <keiths@redhat.com>
PR c++/12266
diff --git a/gdb/breakpoint.c b/gdb/breakpoint.c
index d8c54e4..d1d325e 100644
--- a/gdb/breakpoint.c
+++ b/gdb/breakpoint.c
@@ -3194,7 +3194,7 @@ bpstat_clear_actions (bpstat bs)
for (; bs != NULL; bs = bs->next)
{
decref_counted_command_line (&bs->commands);
- bs->commands_left = NULL;
+
if (bs->old_val != NULL)
{
value_free (bs->old_val);
@@ -3231,6 +3231,16 @@ cleanup_executing_breakpoints (void *ignore)
executing_breakpoint_commands = 0;
}
+/* Return non-zero iff CMD as the first line of a command sequence is `silent'
+ or its equivalent. */
+
+static int
+command_line_is_silent (struct command_line *cmd)
+{
+ return cmd && (strcmp ("silent", cmd->line) == 0
+ || (xdb_commands && strcmp ("Q", cmd->line) == 0));
+}
+
/* Execute all the commands associated with all the breakpoints at
this location. Any of these commands could cause the process to
proceed beyond this point, etc. We look out for such changes by
@@ -3279,10 +3289,13 @@ bpstat_do_actions_1 (bpstat *bsp)
the tree when we're done. */
ccmd = bs->commands;
bs->commands = NULL;
- this_cmd_tree_chain
- = make_cleanup_decref_counted_command_line (&ccmd);
- cmd = bs->commands_left;
- bs->commands_left = NULL;
+ this_cmd_tree_chain = make_cleanup_decref_counted_command_line (&ccmd);
+ cmd = ccmd ? ccmd->commands : NULL;
+ if (command_line_is_silent (cmd))
+ {
+ /* The action has been already done by bpstat_stop_status. */
+ cmd = cmd->next;
+ }
while (cmd != NULL)
{
@@ -3474,7 +3487,6 @@ bpstat_alloc (struct bp_location *bl, bpstat **bs_link_pointer)
incref_bp_location (bl);
/* If the condition is false, etc., don't do the commands. */
bs->commands = NULL;
- bs->commands_left = NULL;
bs->old_val = NULL;
bs->print_it = print_it_normal;
return bs;
@@ -4151,16 +4163,9 @@ bpstat_stop_status (struct address_space *aspace,
bs->print = 0;
bs->commands = b->commands;
incref_counted_command_line (bs->commands);
- bs->commands_left = bs->commands ? bs->commands->commands : NULL;
- if (bs->commands_left
- && (strcmp ("silent", bs->commands_left->line) == 0
- || (xdb_commands
- && strcmp ("Q",
- bs->commands_left->line) == 0)))
- {
- bs->commands_left = bs->commands_left->next;
- bs->print = 0;
- }
+ if (command_line_is_silent (bs->commands
+ ? bs->commands->commands : NULL))
+ bs->print = 0;
}
/* Print nothing for this entry if we don't stop or don't print. */
diff --git a/gdb/breakpoint.h b/gdb/breakpoint.h
index 9b79e3e..146ed7e 100644
--- a/gdb/breakpoint.h
+++ b/gdb/breakpoint.h
@@ -950,10 +950,6 @@ struct bpstats
/* The associated command list. */
struct counted_command_line *commands;
- /* Commands left to be done. This points somewhere in
- base_command. */
- struct command_line *commands_left;
-
/* Old value associated with a watchpoint. */
struct value *old_val;