gdb/gdbserver/

* linux-low.c (linux_kill): Skip PTRACE_KILL if LWP does not exist.
	Print new debug message for such case.
This commit is contained in:
Jan Kratochvil 2011-12-08 10:28:58 +00:00
parent 7cd3876c8a
commit 784867a51b
2 changed files with 23 additions and 9 deletions

View File

@ -1,3 +1,8 @@
2011-12-08 Jan Kratochvil <jan.kratochvil@redhat.com>
* linux-low.c (linux_kill): Skip PTRACE_KILL if LWP does not exist.
Print new debug message for such case.
2011-12-06 Jan Kratochvil <jan.kratochvil@redhat.com>
Fix overlapping memcpy.

View File

@ -862,17 +862,26 @@ linux_kill (int pid)
thread in the list, so do so now. */
lwp = find_lwp_pid (pid_to_ptid (pid));
if (debug_threads)
fprintf (stderr, "lk_1: killing lwp %ld, for pid: %d\n",
lwpid_of (lwp), pid);
do
if (lwp == NULL)
{
ptrace (PTRACE_KILL, lwpid_of (lwp), 0, 0);
if (debug_threads)
fprintf (stderr, "lk_1: cannot find lwp %ld, for pid: %d\n",
lwpid_of (lwp), pid);
}
else
{
if (debug_threads)
fprintf (stderr, "lk_1: killing lwp %ld, for pid: %d\n",
lwpid_of (lwp), pid);
/* Make sure it died. The loop is most likely unnecessary. */
lwpid = linux_wait_for_event (lwp->head.id, &wstat, __WALL);
} while (lwpid > 0 && WIFSTOPPED (wstat));
do
{
ptrace (PTRACE_KILL, lwpid_of (lwp), 0, 0);
/* Make sure it died. The loop is most likely unnecessary. */
lwpid = linux_wait_for_event (lwp->head.id, &wstat, __WALL);
} while (lwpid > 0 && WIFSTOPPED (wstat));
}
the_target->mourn (process);