diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index e6b0a8414c..4658abfa78 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,3 +1,8 @@ +2014-07-15 Pedro Alves + + * linux-low.c (linux_kill_one_lwp): Save errno and work with saved + copy. + 2014-07-11 Pedro Alves * linux-low.c (kill_wait_lwp): New function, based on diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 215a80cee1..0f4dbe2ebb 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -897,16 +897,24 @@ linux_kill_one_lwp (struct lwp_info *lwp) errno = 0; kill (pid, SIGKILL); if (debug_threads) - debug_printf ("LKL: kill (SIGKILL) %s, 0, 0 (%s)\n", - target_pid_to_str (ptid_of (thr)), - errno ? strerror (errno) : "OK"); + { + int save_errno = errno; + + debug_printf ("LKL: kill_lwp (SIGKILL) %s, 0, 0 (%s)\n", + target_pid_to_str (ptid_of (thr)), + save_errno ? strerror (save_errno) : "OK"); + } errno = 0; ptrace (PTRACE_KILL, pid, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0); if (debug_threads) - debug_printf ("LKL: PTRACE_KILL %s, 0, 0 (%s)\n", - target_pid_to_str (ptid_of (thr)), - errno ? strerror (errno) : "OK"); + { + int save_errno = errno; + + debug_printf ("LKL: PTRACE_KILL %s, 0, 0 (%s)\n", + target_pid_to_str (ptid_of (thr)), + save_errno ? strerror (save_errno) : "OK"); + } } /* Kill LWP and wait for it to die. */