[GDBserver] Avoid stale errno
Although most compilers follow right-to-left evaluation order, the order of evaluation of a function call's arguments is really unspecified. target_pid_to_str or ptid_of may well clobber errno when we get to evaluate the third argument to debug_printf. gdb/gdbserver/ 2014-07-15 Pedro Alves <palves@redhat.com> * linux-low.c (linux_kill_one_lwp): Save errno and work with saved copy.
This commit is contained in:
parent
19f2f6a9c4
commit
ce9e3fe795
|
@ -1,3 +1,8 @@
|
||||||
|
2014-07-15 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
|
* linux-low.c (linux_kill_one_lwp): Save errno and work with saved
|
||||||
|
copy.
|
||||||
|
|
||||||
2014-07-11 Pedro Alves <palves@redhat.com>
|
2014-07-11 Pedro Alves <palves@redhat.com>
|
||||||
|
|
||||||
* linux-low.c (kill_wait_lwp): New function, based on
|
* linux-low.c (kill_wait_lwp): New function, based on
|
||||||
|
|
|
@ -897,16 +897,24 @@ linux_kill_one_lwp (struct lwp_info *lwp)
|
||||||
errno = 0;
|
errno = 0;
|
||||||
kill (pid, SIGKILL);
|
kill (pid, SIGKILL);
|
||||||
if (debug_threads)
|
if (debug_threads)
|
||||||
debug_printf ("LKL: kill (SIGKILL) %s, 0, 0 (%s)\n",
|
{
|
||||||
target_pid_to_str (ptid_of (thr)),
|
int save_errno = errno;
|
||||||
errno ? strerror (errno) : "OK");
|
|
||||||
|
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;
|
errno = 0;
|
||||||
ptrace (PTRACE_KILL, pid, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0);
|
ptrace (PTRACE_KILL, pid, (PTRACE_TYPE_ARG3) 0, (PTRACE_TYPE_ARG4) 0);
|
||||||
if (debug_threads)
|
if (debug_threads)
|
||||||
debug_printf ("LKL: PTRACE_KILL %s, 0, 0 (%s)\n",
|
{
|
||||||
target_pid_to_str (ptid_of (thr)),
|
int save_errno = errno;
|
||||||
errno ? strerror (errno) : "OK");
|
|
||||||
|
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. */
|
/* Kill LWP and wait for it to die. */
|
||||||
|
|
Loading…
Reference in New Issue