diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/inferior.c | 21 | ||||
-rw-r--r-- | gdb/inferior.h | 4 | ||||
-rw-r--r-- | gdb/mi/mi-main.c | 6 |
4 files changed, 27 insertions, 13 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 3b5f9aa..50c56c9 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +2020-01-10 Pedro Alves <palves@redhat.com> + + * inferior.c (switch_to_inferior_no_thread): New function, + factored out from ... + (inferior_command): ... here. + * inferior.h (switch_to_inferior_no_thread): Declare. + * mi/mi-main.c (run_one_inferior): Use + switch_to_inferior_no_thread. + 2020-01-10 Pedro Alves <palves@redhat.com> * infcmd.c (kill_command): Remove dead code. diff --git a/gdb/inferior.c b/gdb/inferior.c index 3969ace..0c5e2c7 100644 --- a/gdb/inferior.c +++ b/gdb/inferior.c @@ -575,6 +575,16 @@ kill_inferior_command (const char *args, int from_tty) bfd_cache_close_all (); } +/* See inferior.h. */ + +void +switch_to_inferior_no_thread (inferior *inf) +{ + set_current_inferior (inf); + switch_to_no_thread (); + set_current_program_space (inf->pspace); +} + static void inferior_command (const char *args, int from_tty) { @@ -605,9 +615,7 @@ inferior_command (const char *args, int from_tty) } else { - set_current_inferior (inf); - switch_to_no_thread (); - set_current_program_space (inf->pspace); + switch_to_inferior_no_thread (inf); gdb::observers::user_selected_context_changed.notify (USER_SELECTED_INFERIOR); @@ -737,11 +745,8 @@ add_inferior_command (const char *args, int from_tty) if (exec != NULL) { /* Switch over temporarily, while reading executable and - symbols.q. */ - set_current_program_space (inf->pspace); - set_current_inferior (inf); - switch_to_no_thread (); - + symbols. */ + switch_to_inferior_no_thread (inf); exec_file_attach (exec.get (), from_tty); symbol_file_add_main (exec.get (), add_flags); } diff --git a/gdb/inferior.h b/gdb/inferior.h index fe94a01..a9baa52 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -308,6 +308,10 @@ extern inferior *current_inferior (); extern void set_current_inferior (inferior *); +/* Switch inferior (and program space) to INF, and switch to no thread + selected. */ +extern void switch_to_inferior_no_thread (inferior *inf); + /* GDB represents the state of each program execution with an object called an inferior. An inferior typically corresponds to a process but is more general and applies also to targets that do not have a diff --git a/gdb/mi/mi-main.c b/gdb/mi/mi-main.c index e677381..24daf3f 100644 --- a/gdb/mi/mi-main.c +++ b/gdb/mi/mi-main.c @@ -414,11 +414,7 @@ run_one_inferior (struct inferior *inf, void *arg) switch_to_thread (tp); } else - { - set_current_inferior (inf); - switch_to_no_thread (); - set_current_program_space (inf->pspace); - } + switch_to_inferior_no_thread (inf); mi_execute_cli_command (run_cmd, async_p, async_p ? "&" : NULL); return 0; |