From 156bfec999186e3eccaf51fa3b81280bf51dbaa4 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Fri, 13 Mar 2020 17:39:52 -0600 Subject: [PATCH] Introduce generic_value_print This introduces generic_value_print, which is a value-based analogue to generic_val_print. For now this is unused and simply calls generic_val_print, but subsequent patches will both change this function to work using the value API directly, and convert callers of generic_val_print to call this instead. gdb/ChangeLog 2020-03-13 Tom Tromey * valprint.h (generic_value_print): Declare. * valprint.c (generic_value_print): New function. --- gdb/ChangeLog | 5 +++++ gdb/valprint.c | 12 ++++++++++++ gdb/valprint.h | 11 +++++++++++ 3 files changed, 28 insertions(+) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index acd5bf0ad69..48572cb4d2a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2020-03-13 Tom Tromey + + * valprint.h (generic_value_print): Declare. + * valprint.c (generic_value_print): New function. + 2020-03-13 Tom Tromey * valprint.c (do_val_print): Call la_value_print_inner, if diff --git a/gdb/valprint.c b/gdb/valprint.c index e0a3424feae..7b0365a3ba8 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -1033,6 +1033,18 @@ generic_val_print (struct type *type, } } +/* See valprint.h. */ + +void +generic_value_print (struct value *val, struct ui_file *stream, int recurse, + const struct value_print_options *options, + const struct generic_val_print_decorations *decorations) +{ + generic_val_print (value_type (val), value_embedded_offset (val), + value_address (val), stream, recurse, val, options, + decorations); +} + /* Helper function for val_print and common_val_print that does the work. Arguments are as to val_print, but FULL_VALUE, if given, is the value to be printed. */ diff --git a/gdb/valprint.h b/gdb/valprint.h index 13b2b2d8c8d..1aca29463f4 100644 --- a/gdb/valprint.h +++ b/gdb/valprint.h @@ -211,6 +211,17 @@ extern void generic_val_print (struct type *type, const struct value_print_options *options, const struct generic_val_print_decorations *); +/* Print a value in a generic way. VAL is the value, STREAM is where + to print it, RECURSE is the recursion depth, OPTIONS describe how + the printing should be done, and D is the language-specific + decorations object. Note that structs and unions cannot be printed + by this function. */ + +extern void generic_value_print (struct value *val, struct ui_file *stream, + int recurse, + const struct value_print_options *options, + const struct generic_val_print_decorations *d); + extern void generic_emit_char (int c, struct type *type, struct ui_file *stream, int quoter, const char *encoding); -- 2.30.2