diff options
Diffstat (limited to 'gdb/f-valprint.c')
-rw-r--r-- | gdb/f-valprint.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c index 8b84b5a..4359f6f 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -505,6 +505,8 @@ info_common_command (char *comname, int from_tty) if (the_common) { + struct frame_id frame_id = get_frame_id (fi); + if (strcmp (comname, BLANK_COMMON_NAME_LOCAL) == 0) printf_filtered (_("Contents of blank COMMON block:\n")); else @@ -515,7 +517,18 @@ info_common_command (char *comname, int from_tty) while (entry != NULL) { + fi = frame_find_by_id (frame_id); + if (fi == NULL) + { + warning (_("Unable to restore previously selected frame.")); + break; + } + print_variable_and_value (NULL, entry->symbol, fi, gdb_stdout, 0); + + /* print_variable_and_value invalidates FI. */ + fi = NULL; + entry = entry->next; } } |