aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/stack.c2
-rw-r--r--gdb/valprint.c13
-rw-r--r--gdb/valprint.h8
4 files changed, 28 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2a2b298..c761221 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2020-03-13 Tom Tromey <tom@tromey.com>
+ * valprint.h (common_val_print_checked): Declare.
+ * valprint.c (common_val_print_checked): New function.
+ * stack.c (print_frame_arg): Use common_val_print_checked.
+
+2020-03-13 Tom Tromey <tom@tromey.com>
+
* valprint.c (do_val_print): New function, from val_print.
(val_print): Use do_val_print.
(common_val_print): Use do_val_print.
diff --git a/gdb/stack.c b/gdb/stack.c
index 024ead0..af35d79 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -486,7 +486,7 @@ print_frame_arg (const frame_print_options &fp_opts,
vp_opts.summary
= fp_opts.print_frame_arguments == print_frame_arguments_scalars;
- common_val_print (arg->val, &stb, 2, &vp_opts, language);
+ common_val_print_checked (arg->val, &stb, 2, &vp_opts, language);
}
catch (const gdb_exception_error &except)
{
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 66da0e6..aab43d4 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -1236,6 +1236,19 @@ common_val_print (struct value *val, struct ui_file *stream, int recurse,
val, options, language);
}
+/* See valprint.h. */
+
+void
+common_val_print_checked (struct value *val, struct ui_file *stream,
+ int recurse,
+ const struct value_print_options *options,
+ const struct language_defn *language)
+{
+ if (!value_check_printable (val, stream, options))
+ return;
+ common_val_print (val, stream, recurse, options, language);
+}
+
/* Print on stream STREAM the value VAL according to OPTIONS. The value
is printed using the current_language syntax. */
diff --git a/gdb/valprint.h b/gdb/valprint.h
index e242134..13b2b2d 100644
--- a/gdb/valprint.h
+++ b/gdb/valprint.h
@@ -282,4 +282,12 @@ extern bool val_print_check_max_depth (struct ui_file *stream, int recurse,
const struct value_print_options *opts,
const struct language_defn *language);
+/* Like common_val_print, but call value_check_printable first. */
+
+extern void common_val_print_checked
+ (struct value *val,
+ struct ui_file *stream, int recurse,
+ const struct value_print_options *options,
+ const struct language_defn *language);
+
#endif