Remove make_bpstat_clear_actions_cleanup
This removes make_bpstat_clear_actions_cleanup, replacing it with uses of scope_exit. gdb/ChangeLog: 2019-01-23 Tom Tromey <tom@tromey.com> Andrew Burgess <andrew.burgess@embecosm.com> Pedro Alves <palves@redhat.com> * infrun.c (fetch_inferior_event): Use scope_exit. * utils.h (make_bpstat_clear_actions_cleanup): Don't declare. * top.c (execute_command): Use scope_exit. * breakpoint.c (bpstat_do_actions): Use scope_exit. * utils.c (do_bpstat_clear_actions_cleanup) (make_bpstat_clear_actions_cleanup): Remove.
This commit is contained in:
parent
4c41382ac1
commit
694c6bf542
6 changed files with 20 additions and 27 deletions
|
@ -1,3 +1,14 @@
|
||||||
|
2019-01-23 Tom Tromey <tom@tromey.com>
|
||||||
|
Andrew Burgess <andrew.burgess@embecosm.com>
|
||||||
|
Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* infrun.c (fetch_inferior_event): Use scope_exit.
|
||||||
|
* utils.h (make_bpstat_clear_actions_cleanup): Don't declare.
|
||||||
|
* top.c (execute_command): Use scope_exit.
|
||||||
|
* breakpoint.c (bpstat_do_actions): Use scope_exit.
|
||||||
|
* utils.c (do_bpstat_clear_actions_cleanup)
|
||||||
|
(make_bpstat_clear_actions_cleanup): Remove.
|
||||||
|
|
||||||
2019-01-23 Tom Tromey <tom@tromey.com>
|
2019-01-23 Tom Tromey <tom@tromey.com>
|
||||||
Pedro Alves <palves@redhat.com>
|
Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
|
|
@ -4468,7 +4468,7 @@ get_bpstat_thread ()
|
||||||
void
|
void
|
||||||
bpstat_do_actions (void)
|
bpstat_do_actions (void)
|
||||||
{
|
{
|
||||||
struct cleanup *cleanup_if_error = make_bpstat_clear_actions_cleanup ();
|
auto cleanup_if_error = make_scope_exit (bpstat_clear_actions);
|
||||||
thread_info *tp;
|
thread_info *tp;
|
||||||
|
|
||||||
/* Do any commands attached to breakpoint we are stopped at. */
|
/* Do any commands attached to breakpoint we are stopped at. */
|
||||||
|
@ -4482,7 +4482,7 @@ bpstat_do_actions (void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
discard_cleanups (cleanup_if_error);
|
cleanup_if_error.release ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Print out the (old or new) value associated with a watchpoint. */
|
/* Print out the (old or new) value associated with a watchpoint. */
|
||||||
|
|
|
@ -3745,8 +3745,8 @@ fetch_inferior_event (void *client_data)
|
||||||
|
|
||||||
/* Get executed before make_cleanup_restore_current_thread above to apply
|
/* Get executed before make_cleanup_restore_current_thread above to apply
|
||||||
still for the thread which has thrown the exception. */
|
still for the thread which has thrown the exception. */
|
||||||
struct cleanup *ts_old_chain = make_bpstat_clear_actions_cleanup ();
|
auto defer_bpstat_clear
|
||||||
|
= make_scope_exit (bpstat_clear_actions);
|
||||||
auto defer_delete_threads
|
auto defer_delete_threads
|
||||||
= make_scope_exit (delete_just_stopped_threads_infrun_breakpoints);
|
= make_scope_exit (delete_just_stopped_threads_infrun_breakpoints);
|
||||||
|
|
||||||
|
@ -3802,7 +3802,7 @@ fetch_inferior_event (void *client_data)
|
||||||
}
|
}
|
||||||
|
|
||||||
defer_delete_threads.release ();
|
defer_delete_threads.release ();
|
||||||
discard_cleanups (ts_old_chain);
|
defer_bpstat_clear.release ();
|
||||||
|
|
||||||
/* No error, don't finish the thread states yet. */
|
/* No error, don't finish the thread states yet. */
|
||||||
finish_state.release ();
|
finish_state.release ();
|
||||||
|
|
|
@ -52,6 +52,7 @@
|
||||||
#include "frame.h"
|
#include "frame.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
#include "gdb_select.h"
|
#include "gdb_select.h"
|
||||||
|
#include "common/scope-exit.h"
|
||||||
|
|
||||||
/* readline include files. */
|
/* readline include files. */
|
||||||
#include "readline/readline.h"
|
#include "readline/readline.h"
|
||||||
|
@ -539,12 +540,11 @@ set_repeat_arguments (const char *args)
|
||||||
void
|
void
|
||||||
execute_command (const char *p, int from_tty)
|
execute_command (const char *p, int from_tty)
|
||||||
{
|
{
|
||||||
struct cleanup *cleanup_if_error;
|
|
||||||
struct cmd_list_element *c;
|
struct cmd_list_element *c;
|
||||||
const char *line;
|
const char *line;
|
||||||
const char *cmd_start = p;
|
const char *cmd_start = p;
|
||||||
|
|
||||||
cleanup_if_error = make_bpstat_clear_actions_cleanup ();
|
auto cleanup_if_error = make_scope_exit (bpstat_clear_actions);
|
||||||
scoped_value_mark cleanup = prepare_execute_command ();
|
scoped_value_mark cleanup = prepare_execute_command ();
|
||||||
|
|
||||||
/* Force cleanup of any alloca areas if using C alloca instead of
|
/* Force cleanup of any alloca areas if using C alloca instead of
|
||||||
|
@ -554,7 +554,7 @@ execute_command (const char *p, int from_tty)
|
||||||
/* This can happen when command_line_input hits end of file. */
|
/* This can happen when command_line_input hits end of file. */
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
{
|
{
|
||||||
discard_cleanups (cleanup_if_error);
|
cleanup_if_error.release ();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -649,7 +649,7 @@ execute_command (const char *p, int from_tty)
|
||||||
if (has_stack_frames () && inferior_thread ()->state != THREAD_RUNNING)
|
if (has_stack_frames () && inferior_thread ()->state != THREAD_RUNNING)
|
||||||
check_frame_language_change ();
|
check_frame_language_change ();
|
||||||
|
|
||||||
discard_cleanups (cleanup_if_error);
|
cleanup_if_error.release ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Run execute_command for P and FROM_TTY. Capture its output into the
|
/* Run execute_command for P and FROM_TTY. Capture its output into the
|
||||||
|
|
17
gdb/utils.c
17
gdb/utils.c
|
@ -3057,23 +3057,6 @@ parse_pid_to_attach (const char *args)
|
||||||
return pid;
|
return pid;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Helper for make_bpstat_clear_actions_cleanup. */
|
|
||||||
|
|
||||||
static void
|
|
||||||
do_bpstat_clear_actions_cleanup (void *unused)
|
|
||||||
{
|
|
||||||
bpstat_clear_actions ();
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Call bpstat_clear_actions for the case an exception is throw. You should
|
|
||||||
discard_cleanups if no exception is caught. */
|
|
||||||
|
|
||||||
struct cleanup *
|
|
||||||
make_bpstat_clear_actions_cleanup (void)
|
|
||||||
{
|
|
||||||
return make_cleanup (do_bpstat_clear_actions_cleanup, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Substitute all occurences of string FROM by string TO in *STRINGP. *STRINGP
|
/* Substitute all occurences of string FROM by string TO in *STRINGP. *STRINGP
|
||||||
must come from xrealloc-compatible allocator and it may be updated. FROM
|
must come from xrealloc-compatible allocator and it may be updated. FROM
|
||||||
needs to be delimited by IS_DIR_SEPARATOR or DIRNAME_SEPARATOR (or be
|
needs to be delimited by IS_DIR_SEPARATOR or DIRNAME_SEPARATOR (or be
|
||||||
|
|
|
@ -286,7 +286,6 @@ private:
|
||||||
int m_save_batch_flag;
|
int m_save_batch_flag;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern struct cleanup *make_bpstat_clear_actions_cleanup (void);
|
|
||||||
|
|
||||||
/* Path utilities. */
|
/* Path utilities. */
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue