summaryrefslogtreecommitdiff
path: root/gdb/linux-thread-db.c
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2008-12-28 16:14:56 +0000
committerPedro Alves <pedro@codesourcery.com>2008-12-28 16:14:56 +0000
commit027a0a007cabf6cb23b35c53f5cbc172904d84ba (patch)
tree35afe6599889252fd31d1c81b85944539e873abe /gdb/linux-thread-db.c
parent43f17405181c357d49d5193f0d16665964e6e5b0 (diff)
downloadgdb-027a0a007cabf6cb23b35c53f5cbc172904d84ba.tar.gz
* linux-fork.c (linux_fork_detach): New.
* linux-fork.h (linux_fork_detach): Declare. * linux-nat.c (linux_child_follow_fork): When following the fork child, add the child inferior before possibly detaching from the parent. Don't reinstall ourselves. (linux_nat_detach): Call linux_fork_detach if there are other forks to debug. * linux-thread-db.c (thread_db_detach): Don't call target_mourn_inferior. Instead inline the necessary bits. * inf-ptrace.c (inf_ptrace_detach): Don't unpush the target if there are other inferiors to debug.
Diffstat (limited to 'gdb/linux-thread-db.c')
-rw-r--r--gdb/linux-thread-db.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gdb/linux-thread-db.c b/gdb/linux-thread-db.c
index cf0dd6a8ff5..4bed21824f3 100644
--- a/gdb/linux-thread-db.c
+++ b/gdb/linux-thread-db.c
@@ -784,10 +784,15 @@ thread_db_detach (struct target_ops *ops, char *args, int from_tty)
{
disable_thread_event_reporting ();
- target_beneath->to_detach (target_beneath, args, from_tty);
+ /* Forget about the child's process ID. We shouldn't need it
+ anymore. */
+ proc_handle.pid = 0;
- /* Should this be done by detach_command? */
- target_mourn_inferior ();
+ /* Detach thread_db target ops. */
+ unpush_target (&thread_db_ops);
+ using_thread_db = 0;
+
+ target_beneath->to_detach (target_beneath, args, from_tty);
}
/* Check if PID is currently stopped at the location of a thread event