From: Joel Brobecker <brobecker@adacore.com>
To: Simon Marchi <simon.marchi@ericsson.com>
Cc: GDB Patches <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Remove unused variable
Date: Mon, 21 Apr 2014 16:12:00 -0000 [thread overview]
Message-ID: <20140421161232.GF4477@adacore.com> (raw)
In-Reply-To: <53553E27.6060009@ericsson.com>
Simon,
> should_resume is set to 1 at the beginning and never changed.
>
> The legal paperwork for people at Ericsson Montreal has been completed
> last week, so I would be ready to open an account to be able to submit
> patches.
Great!
>
> gdb/ChangeLog:
>
> 2014-04-21 Simon Marchi <simon.marchi@ericsson.com>
>
> * infrun.c (resume): Remove should_resume (unused).
Unfortunately, your patch does much much much much much much much
more than just removing "should_resume" :-).
Can you please submit a patch that just removes that variable?
>
>
> diff --git a/gdb/infrun.c b/gdb/infrun.c
> index 31bb132..49fd58c 100644
> --- a/gdb/infrun.c
> +++ b/gdb/infrun.c
> @@ -1771,13 +1771,13 @@ user_visible_resume_ptid (int step)
> void
> resume (int step, enum gdb_signal sig)
> {
> - int should_resume = 1;
> struct cleanup *old_cleanups = make_cleanup (resume_cleanups, 0);
> struct regcache *regcache = get_current_regcache ();
> struct gdbarch *gdbarch = get_regcache_arch (regcache);
> struct thread_info *tp = inferior_thread ();
> CORE_ADDR pc = regcache_read_pc (regcache);
> struct address_space *aspace = get_regcache_aspace (regcache);
> + ptid_t resume_ptid;
>
> QUIT;
>
> @@ -1921,87 +1921,82 @@ a command like `return' or `jump' to continue execution."));
> insert_breakpoints ();
> }
>
> - if (should_resume)
> + /* If STEP is set, it's a request to use hardware stepping
> + facilities. But in that case, we should never
> + use singlestep breakpoint. */
> + gdb_assert (!(singlestep_breakpoints_inserted_p && step));
> +
> + /* Decide the set of threads to ask the target to resume. Start
> + by assuming everything will be resumed, than narrow the set
> + by applying increasingly restricting conditions. */
> + resume_ptid = user_visible_resume_ptid (step);
> +
> + /* Maybe resume a single thread after all. */
> + if ((step || singlestep_breakpoints_inserted_p)
> + && tp->control.trap_expected)
> + {
> + /* We're allowing a thread to run past a breakpoint it has
> + hit, by single-stepping the thread with the breakpoint
> + removed. In which case, we need to single-step only this
> + thread, and keep others stopped, as they can miss this
> + breakpoint if allowed to run. */
> + resume_ptid = inferior_ptid;
> + }
> +
> + if (gdbarch_cannot_step_breakpoint (gdbarch))
> {
> - ptid_t resume_ptid;
> + /* Most targets can step a breakpoint instruction, thus
> + executing it normally. But if this one cannot, just
> + continue and we will hit it anyway. */
> + if (step && breakpoint_inserted_here_p (aspace, pc))
> + step = 0;
> + }
>
> - /* If STEP is set, it's a request to use hardware stepping
> - facilities. But in that case, we should never
> - use singlestep breakpoint. */
> - gdb_assert (!(singlestep_breakpoints_inserted_p && step));
> + if (debug_displaced
> + && use_displaced_stepping (gdbarch)
> + && tp->control.trap_expected)
> + {
> + struct regcache *resume_regcache = get_thread_regcache (resume_ptid);
> + struct gdbarch *resume_gdbarch = get_regcache_arch (resume_regcache);
> + CORE_ADDR actual_pc = regcache_read_pc (resume_regcache);
> + gdb_byte buf[4];
>
> - /* Decide the set of threads to ask the target to resume. Start
> - by assuming everything will be resumed, than narrow the set
> - by applying increasingly restricting conditions. */
> - resume_ptid = user_visible_resume_ptid (step);
> + fprintf_unfiltered (gdb_stdlog, "displaced: run %s: ",
> + paddress (resume_gdbarch, actual_pc));
> + read_memory (actual_pc, buf, sizeof (buf));
> + displaced_step_dump_bytes (gdb_stdlog, buf, sizeof (buf));
> + }
>
> - /* Maybe resume a single thread after all. */
> - if ((step || singlestep_breakpoints_inserted_p)
> - && tp->control.trap_expected)
> - {
> - /* We're allowing a thread to run past a breakpoint it has
> - hit, by single-stepping the thread with the breakpoint
> - removed. In which case, we need to single-step only this
> - thread, and keep others stopped, as they can miss this
> - breakpoint if allowed to run. */
> - resume_ptid = inferior_ptid;
> - }
> + if (tp->control.may_range_step)
> + {
> + /* If we're resuming a thread with the PC out of the step
> + range, then we're doing some nested/finer run control
> + operation, like stepping the thread out of the dynamic
> + linker or the displaced stepping scratch pad. We
> + shouldn't have allowed a range step then. */
> + gdb_assert (pc_in_thread_step_range (pc, tp));
> + }
>
> - if (gdbarch_cannot_step_breakpoint (gdbarch))
> - {
> - /* Most targets can step a breakpoint instruction, thus
> - executing it normally. But if this one cannot, just
> - continue and we will hit it anyway. */
> - if (step && breakpoint_inserted_here_p (aspace, pc))
> - step = 0;
> - }
> + /* Install inferior's terminal modes. */
> + target_terminal_inferior ();
>
> - if (debug_displaced
> - && use_displaced_stepping (gdbarch)
> - && tp->control.trap_expected)
> - {
> - struct regcache *resume_regcache = get_thread_regcache (resume_ptid);
> - struct gdbarch *resume_gdbarch = get_regcache_arch (resume_regcache);
> - CORE_ADDR actual_pc = regcache_read_pc (resume_regcache);
> - gdb_byte buf[4];
> -
> - fprintf_unfiltered (gdb_stdlog, "displaced: run %s: ",
> - paddress (resume_gdbarch, actual_pc));
> - read_memory (actual_pc, buf, sizeof (buf));
> - displaced_step_dump_bytes (gdb_stdlog, buf, sizeof (buf));
> - }
> -
> - if (tp->control.may_range_step)
> - {
> - /* If we're resuming a thread with the PC out of the step
> - range, then we're doing some nested/finer run control
> - operation, like stepping the thread out of the dynamic
> - linker or the displaced stepping scratch pad. We
> - shouldn't have allowed a range step then. */
> - gdb_assert (pc_in_thread_step_range (pc, tp));
> - }
> + /* Avoid confusing the next resume, if the next stop/resume
> + happens to apply to another thread. */
> + tp->suspend.stop_signal = GDB_SIGNAL_0;
>
> - /* Install inferior's terminal modes. */
> - target_terminal_inferior ();
> -
> - /* Avoid confusing the next resume, if the next stop/resume
> - happens to apply to another thread. */
> - tp->suspend.stop_signal = GDB_SIGNAL_0;
> -
> - /* Advise target which signals may be handled silently. If we have
> - removed breakpoints because we are stepping over one (which can
> - happen only if we are not using displaced stepping), we need to
> - receive all signals to avoid accidentally skipping a breakpoint
> - during execution of a signal handler. */
> - if ((step || singlestep_breakpoints_inserted_p)
> - && tp->control.trap_expected
> - && !use_displaced_stepping (gdbarch))
> - target_pass_signals (0, NULL);
> - else
> - target_pass_signals ((int) GDB_SIGNAL_LAST, signal_pass);
> + /* Advise target which signals may be handled silently. If we have
> + removed breakpoints because we are stepping over one (which can
> + happen only if we are not using displaced stepping), we need to
> + receive all signals to avoid accidentally skipping a breakpoint
> + during execution of a signal handler. */
> + if ((step || singlestep_breakpoints_inserted_p)
> + && tp->control.trap_expected
> + && !use_displaced_stepping (gdbarch))
> + target_pass_signals (0, NULL);
> + else
> + target_pass_signals ((int) GDB_SIGNAL_LAST, signal_pass);
>
> - target_resume (resume_ptid, step, sig);
> - }
> + target_resume (resume_ptid, step, sig);
>
> discard_cleanups (old_cleanups);
> }
--
Joel
next prev parent reply other threads:[~2014-04-21 16:12 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-21 15:49 Simon Marchi
2014-04-21 16:12 ` Joel Brobecker [this message]
2014-04-21 16:54 ` Simon Marchi
2014-04-21 17:14 ` Joel Brobecker
2014-04-21 17:36 ` Simon Marchi
2014-04-21 17:47 ` Joel Brobecker
2014-05-13 20:55 ` Simon Marchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140421161232.GF4477@adacore.com \
--to=brobecker@adacore.com \
--cc=gdb-patches@sourceware.org \
--cc=simon.marchi@ericsson.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox