diff options
author | Pedro Alves <palves@redhat.com> | 2020-01-10 20:05:47 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2020-01-10 20:05:47 +0000 |
commit | db2d40f7d0b8477ca5ad9e305b8137a085434c97 (patch) | |
tree | bce10d93633a8fe79fa2e14e994f9b89799bf922 | |
parent | bd420a2dfff64978feb1659d3b77c7601b98463f (diff) | |
download | gdb-db2d40f7d0b8477ca5ad9e305b8137a085434c97.zip gdb-db2d40f7d0b8477ca5ad9e305b8137a085434c97.tar.gz gdb-db2d40f7d0b8477ca5ad9e305b8137a085434c97.tar.bz2 |
Introduce switch_to_inferior_no_thread
Several places want to switch context to an inferior and its pspace,
while at the same time switch to "no thread selected". This commit
adds a function that does that, and uses it in a few places.
gdb/ChangeLog:
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.
-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; |