Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: David Smith <dsmith@redhat.com>
To: Jonathan Larmour <jlarmour@redhat.com>
Cc: gdb@sources.redhat.com
Subject: Re: Thread switching and stepping bug
Date: Wed, 02 May 2001 06:30:00 -0000	[thread overview]
Message-ID: <3AF00AA7.6020002@redhat.com> (raw)
In-Reply-To: <3AEF64C7.790438AB@redhat.com>

Jonathan,

Note that my patch provides the generic PREPARE_TO_PROCEED functionality. 
You'll have to change your tdep file to use generic_prepare_to_proceed().  If 
your target is already multi-arched, it is a one line change in your 
{target}_gdbarch_init() function.  It would look like this:

   set_gdbarch_prepare_to_proceed (gdbarch, generic_prepare_to_proceed);

Give that a shot.

Jonathan Larmour wrote:

> David Smith wrote:
> 
>> Jonathan,
>> 
>> If I understand you correctly, you may have hit a problem I'm familiar with.
>>   Basically your target (which you didn't mention) hasn't implemented
>> PREPARE_TO_PROCEED which gets called in infrun.c.  I submitted a patch back
>> at the end of March to implement a generic PREPARE_TO_PROCEED which should
>> work for most targets.
>> 
>> For more details, here's the start of the thread where we discussed this:
>> 
>> < http://sources.redhat.com/ml/gdb-patches/2001-03/msg00541.html >
> 
> 
> I've gone through it again with current CVS GDB, and I'm afraid there's no
> change in behaviour. I was slightly wrong in my description below actually.
> All that's needed is actually:
> 
> b breakme
> c
> [ hits breakpoint in thread 3 ]
> thread 5
> step
> 
> I've already tried to debug it but got lost in wait_for_inferior(). Perhaps
> someone could give me an idea what should be the correct course of events
> in wait_for_inferior() in the above situation after the final step, and I
> can compare with what happens?
> 
> Thanks,
> 
> Jifl
> 
> 
> 
>> Jonathan Larmour wrote:
>> 
>> 
>>> It seems GDB (a fairly recent CVS) doesn't do the right thing when a thread
>>> view has been switched and then the system stepped.
>>> 
>>> I've got a program with a bunch of threads. The default one is thread 3 and
>>> has a function breakme which I set a breakpoint. The other threads run
>>> other stuff.
>>> 
>>> If I set a breakpoint on breakme, thread 3 hits it. If I manually step off
>>> that breakpoint, switch to e.g. thread 5 then do another step, GDB can't
>>> recognise that it hit a sensible breakpoint, and instead reports a SIGTRAP.
>>> 
>>> So the commands I'm doing are:
>>> 
>>> b breakme
>>> c
>>> [ hits breakpoint in thread 3]
>>> step
>>> thread 5
>>> step
>>> 
>>> I'm surprised no-one has noticed this before, so is my understanding wrong?
>>> 
>>> I've tried looking in wait_for_inferior() but got lost quickly :-). I think
>>> the problem may be that step_resume_breakpoint is changed when GDB notices
>>> the thread has changed. But I'm no expert.
>>> 
>>> Jifl
>> 
>> --
>> David Smith
>> dsmith@redhat.com
>> Red Hat, Inc.
>> http://www.redhat.com
>> 256.704.9222 (direct)
>> 256.837.3839 (fax)



-- 
David Smith
dsmith@redhat.com
Red Hat, Inc.
http://www.redhat.com
256.704.9222 (direct)
256.837.3839 (fax)


  reply	other threads:[~2001-05-02  6:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-24  2:06 Jonathan Larmour
2001-04-24  6:33 ` David Smith
2001-04-24  8:14   ` Jonathan Larmour
2001-05-01 18:37   ` Jonathan Larmour
2001-05-02  6:30     ` David Smith [this message]
2001-05-03 17:32       ` Andrew Cagney
2001-05-04  8:28         ` David Smith
2001-05-10  8:33           ` Andrew Cagney

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=3AF00AA7.6020002@redhat.com \
    --to=dsmith@redhat.com \
    --cc=gdb@sources.redhat.com \
    --cc=jlarmour@redhat.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