This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH/RFC] Improve the "thread_step_needed" logic
- To: gdb-patches at sources dot redhat dot com
- Subject: Re: [PATCH/RFC] Improve the "thread_step_needed" logic
- From: Daniel Jacobowitz <dmj+ at andrew dot cmu dot edu>
- Date: Fri, 15 Jun 2001 16:44:33 -0700
- References: <200106152335.f5FNZ9S02028@mvstp600e.cygnus.com>
On Fri, Jun 15, 2001 at 04:35:09PM -0700, Michael Snyder wrote:
> This is a fairly significant change, that both simplifies and
> improves the logic for deciding when a single thread should be
> stepped (to get past a breakpoint), rather than stepping all threads.
> In a nutshell, this replaces the state variable "thread_step_needed"
> with the following logic in resume():
<sigh>
While you're fixing this, could you please address my issue from last
week with this code? Checking "step" at this point in resume() is not
correct, since it will have been cleared if SOFTWARE_SINGLE_STEP_P ().
> --- 879,913 ----
> if (should_resume)
> {
> ptid_t resume_ptid;
> +
> + resume_ptid = RESUME_ALL; /* Default */
>
> ! if ((step || singlestep_breakpoints_inserted_p) &&
> ! !breakpoints_inserted && breakpoint_here_p (read_pc ()))
> +
> + #ifdef CANNOT_STEP_BREAKPOINT
> + /* 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 && breakpoints_inserted && breakpoint_here_p (read_pc ()))
> + step = 0;
> + #endif
Specifically, those bits.
--
Daniel Jacobowitz Debian GNU/Linux Developer
Monta Vista Software Debian Security Team