aboutsummaryrefslogtreecommitdiff
path: root/gdb/gdbserver/linux-low.c
diff options
context:
space:
mode:
authorPedro Alves <palves@redhat.com>2009-11-16 18:15:05 +0000
committerPedro Alves <palves@redhat.com>2009-11-16 18:15:05 +0000
commitfd7dd3e67aa6a8d3f8019a4b3e19837660db1414 (patch)
tree22e8f50cc2caad1226c68149b4c52b12bff066d4 /gdb/gdbserver/linux-low.c
parentf7c21dc7b864993ed09c1c32bc1de9071da40348 (diff)
downloadgdb-fd7dd3e67aa6a8d3f8019a4b3e19837660db1414.zip
gdb-fd7dd3e67aa6a8d3f8019a4b3e19837660db1414.tar.gz
gdb-fd7dd3e67aa6a8d3f8019a4b3e19837660db1414.tar.bz2
* linux-low.c (linux_remove_process): Add `detaching' parameter.
Pass it to thread_db_free. (linux_kill, linux_detach, linux_wait_1): Adjust to pass the proper `detaching' argument to linux_remove_process. * linux-low.h (thread_db_free): Add `detaching' parameter. * thread-db.c (thread_db_init): Pass false as `detaching' argument to thread_db_free. (thread_db_free): Add `detaching' parameter. Only call td_ta_clear_event if detaching from process.
Diffstat (limited to 'gdb/gdbserver/linux-low.c')
-rw-r--r--gdb/gdbserver/linux-low.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 8a88237..45dd9f7 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -259,12 +259,12 @@ linux_add_process (int pid, int attached)
also freeing all private data. */
static void
-linux_remove_process (struct process_info *process)
+linux_remove_process (struct process_info *process, int detaching)
{
struct process_info_private *priv = process->private;
#ifdef USE_THREAD_DB
- thread_db_free (process);
+ thread_db_free (process, detaching);
#endif
free (priv->arch_private);
@@ -663,7 +663,7 @@ linux_kill (int pid)
} while (lwpid > 0 && WIFSTOPPED (wstat));
delete_lwp (lwp);
- linux_remove_process (process);
+ linux_remove_process (process, 0);
return 0;
}
@@ -752,7 +752,7 @@ linux_detach (int pid)
delete_all_breakpoints ();
find_inferior (&all_threads, linux_detach_one_lwp, &pid);
- linux_remove_process (process);
+ linux_remove_process (process, 1);
return 0;
}
@@ -1378,7 +1378,7 @@ retry:
struct process_info *process = find_process_pid (pid);
delete_lwp (lwp);
- linux_remove_process (process);
+ linux_remove_process (process, 0);
current_inferior = NULL;