This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] detaching and threaded linux apps


thread_db_detach and lin_lwp_detach don't remove their target operation
structures from the target list when a detach on a threaded application
is done. This leads to the failure of the num_lwps == 1 assertion if a
gdb user (for some reason) detaches again before starting/attaching to a
new inferior.

Liam

-- 
Liam Stewart :: Red Hat Canada, Ltd. :: liams@redhat.com

2002-06-03  Liam Stewart  <liams@redhat.com>

	* lin-lwp.c (lin_lwp_detach): Remove target operation structure
	from target stack after detach operations are done.
	* thread-db.c (thread_db_detach): Ditto.

Index: lin-lwp.c
===================================================================
RCS file: /cvs/src/src/gdb/lin-lwp.c,v
retrieving revision 1.34
diff -c -p -r1.34 lin-lwp.c
*** lin-lwp.c	31 Mar 2002 15:10:38 -0000	1.34
--- lin-lwp.c	3 Jun 2002 18:23:54 -0000
*************** lin_lwp_detach (char *args, int from_tty
*** 498,503 ****
--- 498,505 ----
  
    inferior_ptid = pid_to_ptid (GET_PID (inferior_ptid));
    child_ops.to_detach (args, from_tty);
+ 
+   unpush_target(&lin_lwp_ops);
  }
  
  
Index: thread-db.c
===================================================================
RCS file: /cvs/src/src/gdb/thread-db.c,v
retrieving revision 1.22
diff -c -p -r1.22 thread-db.c
*** thread-db.c	23 Mar 2002 17:38:13 -0000	1.22
--- thread-db.c	3 Jun 2002 18:23:54 -0000
*************** thread_db_detach (char *args, int from_t
*** 627,632 ****
--- 627,634 ----
    proc_handle.pid = 0;
  
    target_beneath->to_detach (args, from_tty);
+ 
+   unpush_target(&thread_db_ops);
  }
  
  static void


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]