This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Thread switching and stepping bug


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
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]