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.
+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.
for (struct program_space *pspace : program_spaces)
{
- struct inferior *inf;
int printed_header;
if (requested != -1 && requested != pspace->num)
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;