From 0f6a939d8663bfe0fcb4bf353c7ed5f6323b2de4 Mon Sep 17 00:00:00 2001 From: Phil Muldoon Date: Fri, 25 Jun 2010 15:13:52 +0000 Subject: [PATCH] 2010-06-24 Phil Muldoon * printcmd.c (print_variable_and_value): Print error message on caught exception. --- gdb/ChangeLog | 5 +++++ gdb/printcmd.c | 17 ++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 53c6145c7e2..d99913c132d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2010-06-25 Phil Muldoon + + * printcmd.c (print_variable_and_value): Print error message on + caught exception. + 2010-06-25 Ulrich Weigand * dwarf2expr.h (struct dwarf_value_location): Use ULONGEST as type diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 430ccee91ac..5ffa099d87e 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -1942,17 +1942,24 @@ print_variable_and_value (const char *name, struct symbol *var, struct frame_info *frame, struct ui_file *stream, int indent) { - struct value *val; - struct value_print_options opts; + volatile struct gdb_exception except; if (!name) name = SYMBOL_PRINT_NAME (var); fprintf_filtered (stream, "%s%s = ", n_spaces (2 * indent), name); + TRY_CATCH (except, RETURN_MASK_ERROR) + { + struct value *val; + struct value_print_options opts; - val = read_var_value (var, frame); - get_user_print_options (&opts); - common_val_print (val, stream, indent, &opts, current_language); + val = read_var_value (var, frame); + get_user_print_options (&opts); + common_val_print (val, stream, indent, &opts, current_language); + } + if (except.reason < 0) + fprintf_filtered(stream, "", name, + except.message); fprintf_filtered (stream, "\n"); } -- 2.30.2