gdb/linux-nat: xfer_memory_partial return E_IO on error

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
This commit is contained in:
Lancelot SIX
2022-05-25 09:37:54 +01:00
parent bfcd7c2160
commit 284b6bb5c6

View 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)
{