From 644a2e75ace6b5e76f91d38c28c3b97fcfdeeaa5 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Thu, 15 Apr 2021 10:14:11 -0600 Subject: Use common_val_print_checked in print_variable_and_value GDB was crashing in "bt full" for a large Ada program. I tracked this down to a combination of bugs. The first bug, fixed here, is that print_variable_and_value calls common_val_print. Normally only the value-printing implementation should call this; from the top level, common_val_print_checked is preferred, because it correctly handles values that are wholly optimized out. I wasn't able to write a test case for this. gdb/ChangeLog 2021-04-15 Tom Tromey * printcmd.c (print_variable_and_value): Use common_val_print_checked. --- gdb/printcmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gdb/printcmd.c') diff --git a/gdb/printcmd.c b/gdb/printcmd.c index c82f709..a4f62f2 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -2387,7 +2387,7 @@ print_variable_and_value (const char *name, struct symbol *var, val = read_var_value (var, NULL, frame); get_user_print_options (&opts); opts.deref_ref = 1; - common_val_print (val, stream, indent, &opts, current_language); + common_val_print_checked (val, stream, indent, &opts, current_language); /* common_val_print invalidates FRAME when a pretty printer calls inferior function. */ -- cgit v1.1