From 284b6bb5c639735735246c4c60c0e06427e5c449 Mon Sep 17 00:00:00 2001 From: Lancelot SIX Date: Wed, 25 May 2022 09:37:54 +0100 Subject: [PATCH] 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 --- gdb/linux-nat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdb/linux-nat.c b/gdb/linux-nat.c index 3b5400896bc..b9164e621db 100644 --- a/gdb/linux-nat.c +++ b/gdb/linux-nat.c @@ -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) { -- 2.30.2