* win32-i386-low.c (win32_kill): Likewise.
(get_child_debug_event): Clear current_process_handle.
-2006-12-30 Denis PILAT <denis.pilat@st.com>
+2007-01-03 Denis Pilat <denis.pilat@st.com>
+ Daniel Jacobowitz <dan@codesourcery.com>
+
+ * linux-low.c (linux_kill): Handle being called with no threads.
+ * win32-i386-low.c (win32_kill): Likewise.
+ (get_child_debug_event): Clear current_process_handle.
+
+2006-12-30 Denis PILAT <denis.pilat@st.com>
Daniel Jacobowitz <dan@codesourcery.com>
* remote-utils.c (remote_open): Check the type of specified
linux_kill (void)
{
struct thread_info *thread = (struct thread_info *) all_threads.head;
- struct process_info *process = get_thread_process (thread);
+ struct process_info *process;
int wstat;
+ if (thread == NULL)
+ return;
+
for_each_inferior (&all_threads, linux_kill_one_process);
/* See the comment in linux_kill_one_process. We did not kill the first
thread in the list, so do so now. */
+ process = get_thread_process (thread);
do
{
ptrace (PTRACE_KILL, pid_of (process), 0, 0);
static void
win32_kill (void)
{
+ if (current_process_handle == NULL)
+ return;
+
TerminateProcess (current_process_handle, 0);
for (;;)
{
ourstatus->kind = TARGET_WAITKIND_EXITED;
ourstatus->value.integer = current_event.u.ExitProcess.dwExitCode;
CloseHandle (current_process_handle);
+ current_process_handle = NULL;
retval = main_thread_id;
break;