This is the mail archive of the gdb-patches@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]
Other format: [Raw text]

RFA: infptrace fix


The following patch fixes a problem on linux regarding attached
processes.  When gdb quits, it goes to detach the process.  If the
process has already been killed, the ptrace detach call sets errno.
This causes infptrace.c: detach() to issue a perror_with_name()
call which eventually gets caught and the user is returned to the
gdb prompt.  If we try and quit again, we go through the same
sequence and so on and so on.

The patch recognizes if errno is set to ESRCH, indicating that the
process cannot be found which is ok and should not result in an
error being flagged.

Ok to install?


-- Jeff J.


2003-02-24 Jeff Johnston <jjohnstn at redhat dot com>

	* infptrace.c (detach): Do not flag error if ptrace detach fails and
	errno is set to ESRCH.

Index: infptrace.c
===================================================================
RCS file: /cvs/src/src/gdb/infptrace.c,v
retrieving revision 1.22
diff -u -r1.22 infptrace.c
--- infptrace.c	8 Nov 2002 23:48:38 -0000	1.22
+++ infptrace.c	24 Feb 2003 23:26:22 -0000
@@ -301,7 +301,7 @@
   errno = 0;
   ptrace (PT_DETACH, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) 1,
           signal);
-  if (errno)
+  if (errno && errno != ESRCH)
     perror_with_name ("ptrace");
   attach_flag = 0;
 }

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