Skip to content
This repository was archived by the owner on Aug 17, 2022. It is now read-only.

Commit fcd4a73

Browse files
author
Yao Qi
committed
Quiet ptrace error ESRCH in regsets_fetch_inferior_registers
When I run process-dies-while-detaching.exp with GDBserver, I see many warnings printed by GDBserver, ptrace(regsets_fetch_inferior_registers) PID=26183: No such process ptrace(regsets_fetch_inferior_registers) PID=26183: No such process ptrace(regsets_fetch_inferior_registers) PID=26184: No such process ptrace(regsets_fetch_inferior_registers) PID=26184: No such process regsets_fetch_inferior_registers is called when GDBserver resumes each lwp. #2 0x0000000000428260 in regsets_fetch_inferior_registers (regsets_info=0x4690d0 <aarch64_regsets_info>, regcache=0x31832020) at /home/yao/SourceCode/gnu/gdb/git/gdb/gdbserver/linux-low.c:5412 #3 0x00000000004070e8 in get_thread_regcache (thread=0x31832940, fetch=fetch@entry=1) at /home/yao/SourceCode/gnu/gdb/git/gdb/gdbserver/regcache.c:58 #4 0x0000000000429c40 in linux_resume_one_lwp_throw (info=<optimized out>, signal=0, step=0, lwp=0x31832830) at /home/yao/SourceCode/gnu/gdb/git/gdb/gdbserver/linux-low.c:4463 #5 linux_resume_one_lwp (lwp=0x31832830, step=<optimized out>, signal=<optimized out>, info=<optimized out>) at /home/yao/SourceCode/gnu/gdb/git/gdb/gdbserver/linux-low.c:4573 The is the case that threads are disappeared when GDB/GDBserver resumes them. We check errno for ESRCH, and don't print error messages, like what we are doing in regsets_store_inferior_registers. gdb/gdbserver: 2016-08-04 Yao Qi <[email protected]> * linux-low.c (regsets_fetch_inferior_registers): Check errno is ESRCH or not.
1 parent dabcfa6 commit fcd4a73

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

gdb/gdbserver/ChangeLog

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2016-08-04 Yao Qi <[email protected]>
2+
3+
* linux-low.c (regsets_fetch_inferior_registers): Check
4+
errno is ESRCH or not.
5+
16
2016-08-02 Yao Qi <[email protected]>
27

38
* thread-db.c (struct thread_db) <td_ta_event_getmsg_p>: Remove.

gdb/gdbserver/linux-low.c

+6
Original file line numberDiff line numberDiff line change
@@ -5405,6 +5405,12 @@ regsets_fetch_inferior_registers (struct regsets_info *regsets_info,
54055405
not "active". This can happen in normal operation,
54065406
so suppress the warning in this case. */
54075407
}
5408+
else if (errno == ESRCH)
5409+
{
5410+
/* At this point, ESRCH should mean the process is
5411+
already gone, in which case we simply ignore attempts
5412+
to read its registers. */
5413+
}
54085414
else
54095415
{
54105416
char s[256];

0 commit comments

Comments
 (0)