Jeff Johnston wrote: > Daniel Jacobowitz wrote: > >> On Thu, Mar 25, 2004 at 03:22:13PM -0500, Jeff Johnston wrote: >> >>> Daniel Jacobowitz wrote: >>> >>>> On Wed, Mar 24, 2004 at 11:39:50PM -0500, Daniel Jacobowitz wrote: >>>> >>>> >>>>> Do you have any code for PTRACE_EVENT_CLONE yet, or should I put >>>>> something together in the morning to verify whether that's the >>>>> problem? >>>> >>>> >>>> >>>> Here you go. Again, this patch is obviously not ready to go into GDB, >>>> but I have not been able to make it misbehave yet. I don't know if all >>>> the bits it needs work right in RHEL3, or if my testing was conclusive. >>>> >>>> The highlights: >>>> - Includes most of the previous patch >>>> - Uses PTRACE_EVENT_CLONE to attach to new threads >>>> - Moves handling of events closer to the waitpid call >>>> >>>> There are some potential races but I haven't hit any of them in >>>> practice. I suspect that with a heavy fork or vfork load (not clone) >>>> you could produce interesting failure modes. >>>> >>>> Give it a try, please. If it works I'll clean it up. >>>> >>> >>> Works great. I was unable to get it to misbehave on RHEL3. Please >>> go ahead cleaning it up. >> >> >> >> Here's the final patch. The description of the patch is unchanged from >> the above. The background, for those who did not read the whole >> discussion: in NPTL, a signal delivered to the process when any thread >> is not attached is likely to terminate the process. So we need to be >> careful to: >> - know when threads have exited, so that we can attach to new threads >> which reuse the same thread ID >> - attach to threads as early as possible >> >> Both of these could cause problems in LinuxThreads, but they were less >> drastic. >> >> Tested with both LinuxThreads and NPTL. I'll commit this to HEAD on >> Monday, barring objections. We've missed the boat for GDB 6.1 at this >> point. >> >> The testcase you posted has credits in it, so we can't just grab it for >> the testsuite. But all we should need to test this is a loop that >> creates short-lived threads, and then verifying that we can send C-c, >> get a prompt, issue info threads, and continue a couple of times >> without seeing anyting matching "error:". Interested in writing that >> test? :) >> > > Sure. Just tried debugging eclipse today with this patch applied and it > works as well. > > -- Jeff J. > > See the attached test. There was some stuff in pthreads.exp about Crtl-C and alpha-*-osf*. Do I need to account for this platform? 2004-03-26 Jeff Johnston * gdb.threads/manythreads.c: New testcase. * gdb.threads/manythreads.exp: Ditto. -- Jeff J.