Adjust "maint info program-spaces" to per-inferior target stack

By inspection, I noticed that print_program_space is calling
target_pid_to_str on the wrong target stack.  Most targets print a
process pid the same way, so it isn't actually visible.

gdb/ChangeLog:

	* progspace.c (print_program_space): Use all_inferiors.  Switch to
	the inferior before calling target_pid_to_str.
This commit is contained in:
Pedro Alves 2020-08-29 00:11:35 +01:00
parent 8f57f34310
commit f7c7700d32
2 changed files with 13 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2020-08-29 Pedro Alves <pedro@palves.net>
* progspace.c (print_program_space): Use all_inferiors. Switch to
the inferior before calling target_pid_to_str.
2020-08-28 Tom Tromey <tom@tromey.com>
* xcoffread.c (xcoff_end_psymtab): Update comment.

View File

@ -302,7 +302,6 @@ print_program_space (struct ui_out *uiout, int requested)
for (struct program_space *pspace : program_spaces)
{
struct inferior *inf;
int printed_header;
if (requested != -1 && requested != pspace->num)
@ -328,9 +327,16 @@ print_program_space (struct ui_out *uiout, int requested)
e.g., both parent/child inferiors in a vfork, or, on targets
that share pspaces between inferiors. */
printed_header = 0;
for (inf = inferior_list; inf; inf = inf->next)
/* We're going to switch inferiors. */
scoped_restore_current_thread restore_thread;
for (inferior *inf : all_inferiors ())
if (inf->pspace == pspace)
{
/* Switch to inferior in order to call target methods. */
switch_to_inferior_no_thread (inf);
if (!printed_header)
{
printed_header = 1;