mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
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.
This commit is contained in:
parent
bd420a2dff
commit
db2d40f7d0
@ -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.
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user