From f7c7700d3241d862512b1fe5bebc0fc74c4470d9 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Sat, 29 Aug 2020 00:11:35 +0100 Subject: 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. --- gdb/progspace.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'gdb/progspace.c') diff --git a/gdb/progspace.c b/gdb/progspace.c index 462083c..3f51216 100644 --- a/gdb/progspace.c +++ b/gdb/progspace.c @@ -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; -- cgit v1.1