/* 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.
#include "gdbcmd.h"
#include "gdbthread.h"
#include "ui-out.h"
+#include "observer.h"
void _initialize_inferiors (void);
static void
free_inferior (struct inferior *inf)
{
+ discard_all_inferior_continuations (inf);
xfree (inf->private);
xfree (inf);
}
memset (inf, 0, sizeof (*inf));
inf->pid = pid;
+ inf->stop_soon = NO_STOP_QUIETLY;
+
inf->num = ++highest_inferior_num;
inf->next = inferior_list;
inferior_list = inf;
{
struct inferior *inf = add_inferior_silent (pid);
+ observer_notify_new_inferior (pid);
+
if (print_inferior_events)
printf_unfiltered (_("[New inferior %d]\n"), pid);
arg.silent = silent;
iterate_over_threads (delete_thread_of_inferior, &arg);
+
+ observer_notify_inferior_exit (pid);
}
void
printf_unfiltered (_("[Inferior %d detached]\n"), pid);
}
+void
+discard_all_inferiors (void)
+{
+ struct inferior *inf, *infnext;
+
+ for (inf = inferior_list; inf; inf = infnext)
+ {
+ infnext = inf->next;
+ delete_inferior_silent (inf->pid);
+ }
+}
+
static struct inferior *
find_inferior_id (int num)
{