gas/
[deliverable/binutils-gdb.git] / gdb / inferior.c
index 9fec4cc2887e12a33864609366f574ffa153696d..e060a1b5f9a85780c51ca6f2faa39711a0cd424e 100644 (file)
@@ -1,6 +1,6 @@
 /* Multi-process control for GDB, the GNU debugger.
 
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008, 2009 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -24,6 +24,7 @@
 #include "gdbcmd.h"
 #include "gdbthread.h"
 #include "ui-out.h"
+#include "observer.h"
 
 void _initialize_inferiors (void);
 
@@ -83,6 +84,8 @@ add_inferior_silent (int pid)
   inf->next = inferior_list;
   inferior_list = inf;
 
+  observer_notify_new_inferior (pid);
+
   return inf;
 }
 
@@ -136,17 +139,21 @@ delete_inferior_1 (int pid, int silent)
   if (!inf)
     return;
 
+  arg.pid = pid;
+  arg.silent = silent;
+
+  iterate_over_threads (delete_thread_of_inferior, &arg);
+
+  /* Notify the observers before removing the inferior from the list,
+     so that the observers have a change to look it up.  */
+  observer_notify_inferior_exit (pid);
+
   if (infprev)
     infprev->next = inf->next;
   else
     inferior_list = inf->next;
 
   free_inferior (inf);
-
-  arg.pid = pid;
-  arg.silent = silent;
-
-  iterate_over_threads (delete_thread_of_inferior, &arg);
 }
 
 void
This page took 0.023611 seconds and 4 git commands to generate.