This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Procfs error for multithreaded apps in Solaris 2.9 for gdb 6.8
- From: Pedro Alves <pedro at codesourcery dot com>
- To: gdb-patches at sourceware dot org, ke at alum dot bu dot edu
- Date: Mon, 20 Jul 2009 15:13:39 +0100
- Subject: Re: Procfs error for multithreaded apps in Solaris 2.9 for gdb 6.8
- References: <915040.7264.qm@web33802.mail.mud.yahoo.com>
Thanks for investigating the bug and diving into gdb's sources.
On Wednesday 15 July 2009 17:52:42, Wang Ke wrote:
> --- gdb/infrun.c????????2009-07-15 12:48:41.000022000 -0400
> +++ ../gdb-6.8-original/gdb/infrun.c????2008-01-29 17:47:19.000000000
You've posted a reverted patch. :-) Please put 'old/original' first:
diff -rau ../gdb-6.8-original/gdb/infrun.c gdb/infrun.c
But while we're talking about this, please try a CVS head
GDB, and check if you can reproduce the bug there. Then you
can produce a patch using cvs itself, if you'd like, with
"cvs diff -up". (The -p switch really helps when reviewing patches. the
diff utility also understands it.)
Some things have changed on the Solaris support since gdb 6.8, but
in any case, patches should always be tested against a recent
checkout or snapshot, since that's where the patch will be applied.
About the change itself: I think you're not tacking it at the right
level yet. It would be much better if a couple of things were fixed:
1 - when reporting TARGET_WAITKIND_SPURIOUS, make sure to return a
valid ptid.
1.1 - make sure handle_inferior_event context switches to the
event ptid before resuming (see the bunch of context_switch
calls in handle_inferior_event).
Alternatively, or in cases where there's no valid ptid to return:
2 - don't return TARGET_WAITKIND_SPURIOUS at all. handle the
spurious stop and resume all within procfs_wait.
--
Pedro Alves