mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-21 02:24:17 +08:00
* mi/mi-main.c (mi_cmd_remove_inferior): Don't delete current inferior.
(get_other_inferior): New.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2010-12-17 Marc Khouzam <marc.khouzam@ericsson.com>
|
||||||
|
|
||||||
|
* mi/mi-main.c (mi_cmd_remove_inferior): Don't delete current inferior.
|
||||||
|
(get_other_inferior): New.
|
||||||
|
|
||||||
2010-12-17 Marc Khouzam <marc.khouzam@ericsson.com>
|
2010-12-17 Marc Khouzam <marc.khouzam@ericsson.com>
|
||||||
|
|
||||||
* python/py-progspace.c (py_free_pspace): Obtain arch another
|
* python/py-progspace.c (py_free_pspace): Obtain arch another
|
||||||
|
@ -1744,6 +1744,18 @@ mi_cmd_add_inferior (char *command, char **argv, int argc)
|
|||||||
ui_out_field_fmt (uiout, "inferior", "i%d", inf->num);
|
ui_out_field_fmt (uiout, "inferior", "i%d", inf->num);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Callback used to find the first inferior other than the
|
||||||
|
current one. */
|
||||||
|
|
||||||
|
static int
|
||||||
|
get_other_inferior (struct inferior *inf, void *arg)
|
||||||
|
{
|
||||||
|
if (inf == current_inferior ())
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
mi_cmd_remove_inferior (char *command, char **argv, int argc)
|
mi_cmd_remove_inferior (char *command, char **argv, int argc)
|
||||||
{
|
{
|
||||||
@ -1760,6 +1772,22 @@ mi_cmd_remove_inferior (char *command, char **argv, int argc)
|
|||||||
if (!inf)
|
if (!inf)
|
||||||
error ("the specified thread group does not exist");
|
error ("the specified thread group does not exist");
|
||||||
|
|
||||||
|
if (inf == current_inferior ())
|
||||||
|
{
|
||||||
|
struct thread_info *tp = 0;
|
||||||
|
struct inferior *new_inferior
|
||||||
|
= iterate_over_inferiors (get_other_inferior, NULL);
|
||||||
|
|
||||||
|
if (new_inferior == NULL)
|
||||||
|
error (_("Cannot remove last inferior"));
|
||||||
|
|
||||||
|
set_current_inferior (new_inferior);
|
||||||
|
if (new_inferior->pid != 0)
|
||||||
|
tp = any_thread_of_process (new_inferior->pid);
|
||||||
|
switch_to_thread (tp ? tp->ptid : null_ptid);
|
||||||
|
set_current_program_space (new_inferior->pspace);
|
||||||
|
}
|
||||||
|
|
||||||
delete_inferior_1 (inf, 1 /* silent */);
|
delete_inferior_1 (inf, 1 /* silent */);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user