Blob Blame History Raw
https://bugzilla.redhat.com/show_bug.cgi?id=1493675

diff -dup -rup gdb-7.6.1-orig/gdb/gcore.c gdb-7.6.1/gdb/gcore.c
--- gdb-7.6.1-orig/gdb/gcore.c	2017-10-20 22:28:50.990391003 +0200
+++ gdb-7.6.1/gdb/gcore.c	2017-10-20 22:29:26.797710799 +0200
@@ -111,8 +111,8 @@ do_bfd_delete_cleanup (void *arg)
   bfd *obfd = arg;
   const char *filename = obfd->filename;
 
-  gdb_bfd_unref (arg);
   unlink (filename);
+  gdb_bfd_unref (arg);
 }
 
 /* gcore_command -- implements the 'gcore' command.
--- ./gdb/inf-ptrace.c	2017-09-28 20:14:05.802344770 +0200
+++ ./gdb/inf-ptrace.c	2017-09-28 22:04:30.417779859 +0200
@@ -280,6 +280,7 @@ inf_ptrace_detach (struct target_ops *op
 {
   pid_t pid = ptid_get_pid (inferior_ptid);
   int sig = 0;
+  int saved_errno;
 
   if (from_tty)
     {
@@ -300,8 +301,7 @@ inf_ptrace_detach (struct target_ops *op
      started the process ourselves.  */
   errno = 0;
   ptrace (PT_DETACH, pid, (PTRACE_TYPE_ARG3)1, sig);
-  if (errno != 0)
-    perror_with_name (("ptrace"));
+saved_errno = errno;
 #else
   error (_("This system does not support detaching from a process"));
 #endif
@@ -311,6 +311,11 @@ inf_ptrace_detach (struct target_ops *op
 
   if (!have_inferiors ())
     unpush_target (ops);
+
+if (saved_errno != 0) {
+  errno = saved_errno;
+  perror_with_name (("ptrace"));
+}
 }
 
 /* Kill the inferior.  */