| Index: gdb/inferior.c
|
| diff --git a/gdb/inferior.c b/gdb/inferior.c
|
| index 65948c4905041d5612efdcd5a3dd4f0414b763bf..805acb4e92f19bcc09197c1aeb0307a26795d18b 100644
|
| --- a/gdb/inferior.c
|
| +++ b/gdb/inferior.c
|
| @@ -22,6 +22,7 @@
|
| #include "inferior.h"
|
| #include "target.h"
|
| #include "command.h"
|
| +#include "completer.h"
|
| #include "gdbcmd.h"
|
| #include "gdbthread.h"
|
| #include "ui-out.h"
|
| @@ -178,25 +179,6 @@ delete_thread_of_inferior (struct thread_info *tp, void *data)
|
| return 0;
|
| }
|
|
|
| -void
|
| -delete_threads_of_inferior (int pid)
|
| -{
|
| - struct inferior *inf;
|
| - struct delete_thread_of_inferior_arg arg;
|
| -
|
| - for (inf = inferior_list; inf; inf = inf->next)
|
| - if (inf->pid == pid)
|
| - break;
|
| -
|
| - if (!inf)
|
| - return;
|
| -
|
| - arg.pid = pid;
|
| - arg.silent = 1;
|
| -
|
| - iterate_over_threads (delete_thread_of_inferior, &arg);
|
| -}
|
| -
|
| /* If SILENT then be quiet -- don't announce a inferior death, or the
|
| exit of its threads. */
|
|
|
| @@ -276,6 +258,7 @@ exit_inferior_1 (struct inferior *inftoex, int silent)
|
| observer_notify_inferior_exit (inf);
|
|
|
| inf->pid = 0;
|
| + inf->fake_pid_p = 0;
|
| if (inf->vfork_parent != NULL)
|
| {
|
| inf->vfork_parent->vfork_child = NULL;
|
| @@ -525,6 +508,18 @@ number_of_inferiors (void)
|
| return count;
|
| }
|
|
|
| +/* Converts an inferior process id to a string. Like
|
| + target_pid_to_str, but special cases the null process. */
|
| +
|
| +static char *
|
| +inferior_pid_to_str (int pid)
|
| +{
|
| + if (pid != 0)
|
| + return target_pid_to_str (pid_to_ptid (pid));
|
| + else
|
| + return _("<null>");
|
| +}
|
| +
|
| /* Prints the list of inferiors and their details on UIOUT. This is a
|
| version of 'info_inferior_command' suitable for use from MI.
|
|
|
| @@ -578,11 +573,8 @@ print_inferior (struct ui_out *uiout, char *requested_inferiors)
|
|
|
| ui_out_field_int (uiout, "number", inf->num);
|
|
|
| - if (inf->pid)
|
| - ui_out_field_string (uiout, "target-id",
|
| - target_pid_to_str (pid_to_ptid (inf->pid)));
|
| - else
|
| - ui_out_field_string (uiout, "target-id", "<null>");
|
| + ui_out_field_string (uiout, "target-id",
|
| + inferior_pid_to_str (inf->pid));
|
|
|
| if (inf->pspace->ebfd)
|
| ui_out_field_string (uiout, "exec",
|
| @@ -699,7 +691,7 @@ inferior_command (char *args, int from_tty)
|
|
|
| printf_filtered (_("[Switching to inferior %d [%s] (%s)]\n"),
|
| inf->num,
|
| - target_pid_to_str (pid_to_ptid (inf->pid)),
|
| + inferior_pid_to_str (inf->pid),
|
| (inf->pspace->ebfd
|
| ? bfd_get_filename (inf->pspace->ebfd)
|
| : _("<noexec>")));
|
| @@ -750,7 +742,7 @@ info_inferiors_command (char *args, int from_tty)
|
|
|
| /* remove-inferior ID */
|
|
|
| -void
|
| +static void
|
| remove_inferior_command (char *args, int from_tty)
|
| {
|
| int num;
|
| @@ -809,7 +801,7 @@ add_inferior_with_spaces (void)
|
|
|
| /* add-inferior [-copies N] [-exec FILENAME] */
|
|
|
| -void
|
| +static void
|
| add_inferior_command (char *args, int from_tty)
|
| {
|
| int i, copies = 1;
|
| @@ -872,7 +864,7 @@ add_inferior_command (char *args, int from_tty)
|
|
|
| /* clone-inferior [-copies N] [ID] */
|
|
|
| -void
|
| +static void
|
| clone_inferior_command (char *args, int from_tty)
|
| {
|
| int i, copies = 1;
|
| @@ -1065,6 +1057,8 @@ inferior_data (struct inferior *inf, const struct inferior_data *data)
|
| void
|
| initialize_inferiors (void)
|
| {
|
| + struct cmd_list_element *c = NULL;
|
| +
|
| /* There's always one inferior. Note that this function isn't an
|
| automatic _initialize_foo function, since other _initialize_foo
|
| routines may need to install their per-inferior data keys. We
|
| @@ -1078,12 +1072,13 @@ initialize_inferiors (void)
|
| add_info ("inferiors", info_inferiors_command,
|
| _("IDs of specified inferiors (all inferiors if no argument)."));
|
|
|
| - add_com ("add-inferior", no_class, add_inferior_command, _("\
|
| + c = add_com ("add-inferior", no_class, add_inferior_command, _("\
|
| Add a new inferior.\n\
|
| Usage: add-inferior [-copies <N>] [-exec <FILENAME>]\n\
|
| N is the optional number of inferiors to add, default is 1.\n\
|
| FILENAME is the file name of the executable to use\n\
|
| as main program."));
|
| + set_cmd_completer (c, filename_completer);
|
|
|
| add_com ("remove-inferiors", no_class, remove_inferior_command, _("\
|
| Remove inferior ID (or list of IDs).\n\
|
|
|