From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24134 invoked by alias); 21 May 2003 23:36:05 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 24127 invoked from network); 21 May 2003 23:36:04 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 21 May 2003 23:36:04 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h4LNa4H07696 for ; Wed, 21 May 2003 19:36:04 -0400 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h4LNa3I24052; Wed, 21 May 2003 19:36:03 -0400 Received: from localhost.localdomain (vpn50-3.rdu.redhat.com [172.16.50.3]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h4LNa2o27780; Wed, 21 May 2003 19:36:02 -0400 Received: (from kev@localhost) by localhost.localdomain (8.11.6/8.11.6) id h4LNZvA02888; Wed, 21 May 2003 16:35:57 -0700 Date: Wed, 21 May 2003 23:36:00 -0000 From: Kevin Buettner Message-Id: <1030521233556.ZM2887@localhost.localdomain> In-Reply-To: "J. Johnston" "Re: RFA: patch to infptrace.c" (May 21, 7:11pm) References: <3ECBFE38.4020701@redhat.com> <1030521224635.ZM475@localhost.localdomain> <3ECC0787.7000604@redhat.com> To: "J. Johnston" Subject: Re: RFA: patch to infptrace.c Cc: gdb-patches@sources.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2003-05/txt/msg00415.txt.bz2 On May 21, 7:11pm, J. Johnston wrote: > Kevin Buettner wrote: > > On May 21, 6:31pm, J. Johnston wrote: > > > > > >>The attached patch changes the ptrace detach call to not perform error handling > >>when an error occurs in detach. Without this patch, an error in detach stops gdb > >>from exiting. The error keeps returning to the command line over and over again. > >> > >>I thought I had fixed this earlier by adding a check for errno != ESRCH, but it > >>appears there are other scenarios that may occur. > > > > > > Which other errno values are tripping it up? > > > > A bugzilla bug has been opened on a Red Hat kernel with patches that was > causing an EPERM to show up. > > > Assuming that it's a good idea to emit only a warning, do we still need > > the errno != ESRCH check? > > It isn't "needed". It was meant to not issue any complaint if the process had > been killed externally. I can remove the check if it is preferred. If the process had been killed externally and the gdb user was unaware of it, then I think this information would be quite useful. It's certainly better (less surprising) to print a message than to detach expecting the process to continue on it's own only to find it mysteriously gone. It won't really help to tell the user why it's gone, but the user will at least know that it happened before the detach or possibly as a result of something having gone wrong with the detach. Anyway, I'm all for your patch going in so long as the ESRCH check is removed. It doesn't make any sense to put the GDB user in limbo as a result of being unable to detach successfully. When I've encountered this problem in the past, there didn't seem to be anything that could be done (as a user) to correct the problem so that the detach would succeed. Kevin > > > > >>Ok to commit? > >> > >>-- Jeff J. > >> > >>2003-05-21 Jeff Johnston > >> > >> * infptrace.c (detach): Call print_sys_errmsg when an error occurs > >> instead of perror_with_name. > >> > >>[ text/plain ] : > >> > >>Index: infptrace.c > >>=================================================================== > >>RCS file: /cvs/src/src/gdb/infptrace.c,v > >>retrieving revision 1.25 > >>diff -u -p -r1.25 infptrace.c > >>--- infptrace.c 8 May 2003 20:52:47 -0000 1.25 > >>+++ infptrace.c 21 May 2003 21:39:56 -0000 > >>@@ -302,7 +302,7 @@ detach (int signal) > >> ptrace (PT_DETACH, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) 1, > >> signal); > >> if (errno && errno != ESRCH) > >>- perror_with_name ("ptrace"); > >>+ print_sys_errmsg ("ptrace", errno); > >> attach_flag = 0; > >> } > >> #endif /* ATTACH_DETACH */ > > > > > >-- End of excerpt from J. Johnston