forked from Imagelibrary/binutils-gdb
Remove make_cleanup_defer_target_commit_resume
This removes make_cleanup_defer_target_commit_resume in favor of using scoped_restore. gdb/ChangeLog 2017-09-29 Tom Tromey <tom@tromey.com> * target.h (make_scoped_defer_target_commit_resume): Update. * target.c (make_scoped_defer_target_commit_resume): Rename from make_cleanup_defer_target_commit_resume. Return a scoped_restore. * infrun.c (proceed): Use make_scoped_defer_target_commit_resume.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2017-09-29 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* target.h (make_scoped_defer_target_commit_resume): Update.
|
||||
* target.c (make_scoped_defer_target_commit_resume): Rename from
|
||||
make_cleanup_defer_target_commit_resume. Return a
|
||||
scoped_restore.
|
||||
* infrun.c (proceed): Use make_scoped_defer_target_commit_resume.
|
||||
|
||||
2017-09-29 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* main.c (captured_main_1): Remove unused declaration.
|
||||
|
||||
60
gdb/infrun.c
60
gdb/infrun.c
@@ -2990,7 +2990,6 @@ proceed (CORE_ADDR addr, enum gdb_signal siggnal)
|
||||
struct execution_control_state ecss;
|
||||
struct execution_control_state *ecs = &ecss;
|
||||
struct cleanup *old_chain;
|
||||
struct cleanup *defer_resume_cleanup;
|
||||
int started;
|
||||
|
||||
/* If we're stopped at a fork/vfork, follow the branch set by the
|
||||
@@ -3132,26 +3131,27 @@ proceed (CORE_ADDR addr, enum gdb_signal siggnal)
|
||||
until the target stops again. */
|
||||
tp->prev_pc = regcache_read_pc (regcache);
|
||||
|
||||
defer_resume_cleanup = make_cleanup_defer_target_commit_resume ();
|
||||
{
|
||||
scoped_restore save_defer_tc = make_scoped_defer_target_commit_resume ();
|
||||
|
||||
started = start_step_over ();
|
||||
started = start_step_over ();
|
||||
|
||||
if (step_over_info_valid_p ())
|
||||
{
|
||||
/* Either this thread started a new in-line step over, or some
|
||||
other thread was already doing one. In either case, don't
|
||||
resume anything else until the step-over is finished. */
|
||||
}
|
||||
else if (started && !target_is_non_stop_p ())
|
||||
{
|
||||
/* A new displaced stepping sequence was started. In all-stop,
|
||||
we can't talk to the target anymore until it next stops. */
|
||||
}
|
||||
else if (!non_stop && target_is_non_stop_p ())
|
||||
{
|
||||
/* In all-stop, but the target is always in non-stop mode.
|
||||
Start all other threads that are implicitly resumed too. */
|
||||
ALL_NON_EXITED_THREADS (tp)
|
||||
if (step_over_info_valid_p ())
|
||||
{
|
||||
/* Either this thread started a new in-line step over, or some
|
||||
other thread was already doing one. In either case, don't
|
||||
resume anything else until the step-over is finished. */
|
||||
}
|
||||
else if (started && !target_is_non_stop_p ())
|
||||
{
|
||||
/* A new displaced stepping sequence was started. In all-stop,
|
||||
we can't talk to the target anymore until it next stops. */
|
||||
}
|
||||
else if (!non_stop && target_is_non_stop_p ())
|
||||
{
|
||||
/* In all-stop, but the target is always in non-stop mode.
|
||||
Start all other threads that are implicitly resumed too. */
|
||||
ALL_NON_EXITED_THREADS (tp)
|
||||
{
|
||||
/* Ignore threads of processes we're not resuming. */
|
||||
if (!ptid_match (tp->ptid, resume_ptid))
|
||||
@@ -3187,18 +3187,18 @@ proceed (CORE_ADDR addr, enum gdb_signal siggnal)
|
||||
if (!ecs->wait_some_more)
|
||||
error (_("Command aborted."));
|
||||
}
|
||||
}
|
||||
else if (!tp->resumed && !thread_is_in_step_over_chain (tp))
|
||||
{
|
||||
/* The thread wasn't started, and isn't queued, run it now. */
|
||||
reset_ecs (ecs, tp);
|
||||
switch_to_thread (tp->ptid);
|
||||
keep_going_pass_signal (ecs);
|
||||
if (!ecs->wait_some_more)
|
||||
error (_("Command aborted."));
|
||||
}
|
||||
}
|
||||
else if (!tp->resumed && !thread_is_in_step_over_chain (tp))
|
||||
{
|
||||
/* The thread wasn't started, and isn't queued, run it now. */
|
||||
reset_ecs (ecs, tp);
|
||||
switch_to_thread (tp->ptid);
|
||||
keep_going_pass_signal (ecs);
|
||||
if (!ecs->wait_some_more)
|
||||
error (_("Command aborted."));
|
||||
}
|
||||
}
|
||||
|
||||
do_cleanups (defer_resume_cleanup);
|
||||
target_commit_resume ();
|
||||
|
||||
discard_cleanups (old_chain);
|
||||
|
||||
10
gdb/target.c
10
gdb/target.c
@@ -2285,14 +2285,10 @@ target_commit_resume (void)
|
||||
|
||||
/* See target.h. */
|
||||
|
||||
struct cleanup *
|
||||
make_cleanup_defer_target_commit_resume (void)
|
||||
scoped_restore_tmpl<int>
|
||||
make_scoped_defer_target_commit_resume ()
|
||||
{
|
||||
struct cleanup *old_chain;
|
||||
|
||||
old_chain = make_cleanup_restore_integer (&defer_target_commit_resume);
|
||||
defer_target_commit_resume = 1;
|
||||
return old_chain;
|
||||
return make_scoped_restore (&defer_target_commit_resume, 1);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -1376,10 +1376,10 @@ extern void target_resume (ptid_t ptid, int step, enum gdb_signal signal);
|
||||
coalesce multiple resumption requests in a single vCont packet. */
|
||||
extern void target_commit_resume ();
|
||||
|
||||
/* Setup to defer target_commit_resume calls, and return a cleanup
|
||||
that reactivates target_commit_resume, if it was previously
|
||||
/* Setup to defer target_commit_resume calls, and reactivate
|
||||
target_commit_resume on destruction, if it was previously
|
||||
active. */
|
||||
struct cleanup *make_cleanup_defer_target_commit_resume ();
|
||||
extern scoped_restore_tmpl<int> make_scoped_defer_target_commit_resume ();
|
||||
|
||||
/* For target_read_memory see target/target.h. */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user