forked from Imagelibrary/binutils-gdb
Remove usage of find_inferior when calling kill_one_lwp_callback
Replace with for_each_thread. gdb/gdbserver/ChangeLog: * linux-low.c (kill_one_lwp_callback): Return void, take argument directly, don't filter on pid. (linux_kill): Use for_each_thread.
This commit is contained in:
committed by
Simon Marchi
parent
eca55aec1d
commit
578290ecaf
@@ -1,3 +1,9 @@
|
|||||||
|
2017-11-19 Simon Marchi <simon.marchi@ericsson.com>
|
||||||
|
|
||||||
|
* linux-low.c (kill_one_lwp_callback): Return void, take
|
||||||
|
argument directly, don't filter on pid.
|
||||||
|
(linux_kill): Use for_each_thread.
|
||||||
|
|
||||||
2017-11-19 Simon Marchi <simon.marchi@ericsson.com>
|
2017-11-19 Simon Marchi <simon.marchi@ericsson.com>
|
||||||
|
|
||||||
* linux-low.c (need_step_over_p): Return bool, remove dummy
|
* linux-low.c (need_step_over_p): Return bool, remove dummy
|
||||||
|
|||||||
@@ -1356,17 +1356,13 @@ kill_wait_lwp (struct lwp_info *lwp)
|
|||||||
perror_with_name ("kill_wait_lwp");
|
perror_with_name ("kill_wait_lwp");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Callback for `find_inferior'. Kills an lwp of a given process,
|
/* Callback for `for_each_thread'. Kills an lwp of a given process,
|
||||||
except the leader. */
|
except the leader. */
|
||||||
|
|
||||||
static int
|
static void
|
||||||
kill_one_lwp_callback (thread_info *thread, void *args)
|
kill_one_lwp_callback (thread_info *thread, int pid)
|
||||||
{
|
{
|
||||||
struct lwp_info *lwp = get_thread_lwp (thread);
|
struct lwp_info *lwp = get_thread_lwp (thread);
|
||||||
int pid = * (int *) args;
|
|
||||||
|
|
||||||
if (thread->id.pid () != pid)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* We avoid killing the first thread here, because of a Linux kernel (at
|
/* We avoid killing the first thread here, because of a Linux kernel (at
|
||||||
least 2.6.0-test7 through 2.6.8-rc4) bug; if we kill the parent before
|
least 2.6.0-test7 through 2.6.8-rc4) bug; if we kill the parent before
|
||||||
@@ -1378,11 +1374,10 @@ kill_one_lwp_callback (thread_info *thread, void *args)
|
|||||||
if (debug_threads)
|
if (debug_threads)
|
||||||
debug_printf ("lkop: is last of process %s\n",
|
debug_printf ("lkop: is last of process %s\n",
|
||||||
target_pid_to_str (thread->id));
|
target_pid_to_str (thread->id));
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
kill_wait_lwp (lwp);
|
kill_wait_lwp (lwp);
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -1399,7 +1394,10 @@ linux_kill (int pid)
|
|||||||
first, as PTRACE_KILL will not work otherwise. */
|
first, as PTRACE_KILL will not work otherwise. */
|
||||||
stop_all_lwps (0, NULL);
|
stop_all_lwps (0, NULL);
|
||||||
|
|
||||||
find_inferior (&all_threads, kill_one_lwp_callback , &pid);
|
for_each_thread (pid, [&] (thread_info *thread)
|
||||||
|
{
|
||||||
|
kill_one_lwp_callback (thread, pid);
|
||||||
|
});
|
||||||
|
|
||||||
/* See the comment in linux_kill_one_lwp. We did not kill the first
|
/* See the comment in linux_kill_one_lwp. We did not kill the first
|
||||||
thread in the list, so do so now. */
|
thread in the list, so do so now. */
|
||||||
|
|||||||
Reference in New Issue
Block a user