gdb/linux-nat: xfer_memory_partial return E_IO on error
authorLancelot SIX <lancelot.six@amd.com>
Wed, 25 May 2022 08:37:54 +0000 (09:37 +0100)
committerLancelot SIX <lancelot.six@amd.com>
Thu, 26 May 2022 08:42:47 +0000 (09:42 +0100)
When accessing /proc/PID/mem, if pread64/pwrite64/read/write encounters
an error and return -1, linux_proc_xfer_memory_partial return
TARGET_XFER_EOF.

I think it should return TARGET_XFER_E_IO in this case.  TARGET_XFER_EOF
is returned when pread64/pwrite64/read/frite returns 0, which indicates
that the address space is gone and the whole process has exited or
execed.

This patch makes this change.

Regression tested on x86_64-linux-gnu.

Change-Id: I6030412459663b8d7933483fdda22a6c2c5d7221

gdb/linux-nat.c

index 3b5400896bc2814101f7e5d2d6b1d68a1b997e08..b9164e621db966b1adf7ddb4bd1d00fadf3e2ef8 100644 (file)
@@ -3917,7 +3917,7 @@ linux_proc_xfer_memory_partial (gdb_byte *readbuf, const gdb_byte *writebuf,
       linux_nat_debug_printf ("accessing fd %d for pid %d failed: %s (%d)",
                              fd, inferior_ptid.pid (),
                              safe_strerror (errno), errno);
-      return TARGET_XFER_EOF;
+      return TARGET_XFER_E_IO;
     }
   else if (ret == 0)
     {