From aad95b57c5c4f5f11bd45e848a3ff3bafff1bfc5 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Mon, 22 Dec 2008 23:11:56 +0000 Subject: [PATCH] * stack.c (print_block_frame_locals): Print spaces, not tabs. Update for call to print_variable_and_value. (print_frame_arg_vars): Update. * value.h (print_variable_and_value): Rename from print_variable_value. Add 'name' and 'indent' parameters. * printcmd.c (print_variable_and_value): Rename from print_variable_value. Add 'name' and 'indent' parameters. Use common_val_print. * f-valprint.c (info_common_command): Update. --- gdb/ChangeLog | 12 ++++++++++++ gdb/f-valprint.c | 4 +--- gdb/printcmd.c | 21 ++++++++++++++++----- gdb/stack.c | 13 +++---------- gdb/value.h | 8 +++++--- 5 files changed, 37 insertions(+), 21 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e917700f7a7..8994407bbcc 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,15 @@ +2008-12-22 Tom Tromey + + * stack.c (print_block_frame_locals): Print spaces, not tabs. + Update for call to print_variable_and_value. + (print_frame_arg_vars): Update. + * value.h (print_variable_and_value): Rename from + print_variable_value. Add 'name' and 'indent' parameters. + * printcmd.c (print_variable_and_value): Rename from + print_variable_value. Add 'name' and 'indent' parameters. Use + common_val_print. + * f-valprint.c (info_common_command): Update. + 2008-12-22 Tom Tromey * python/python-value.c (valpy_length): Remove #if. diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c index f893b4991c4..a2d2a201075 100644 --- a/gdb/f-valprint.c +++ b/gdb/f-valprint.c @@ -566,9 +566,7 @@ info_common_command (char *comname, int from_tty) while (entry != NULL) { - printf_filtered ("%s = ", SYMBOL_PRINT_NAME (entry->symbol)); - print_variable_value (entry->symbol, fi, gdb_stdout); - printf_filtered ("\n"); + print_variable_and_value (NULL, entry->symbol, fi, gdb_stdout, 0); entry = entry->next; } } diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 6d6b91580e9..c4262d53d8d 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -1731,17 +1731,28 @@ disable_display_command (char *args, int from_tty) /* Print the value in stack frame FRAME of a variable specified by a - struct symbol. */ + struct symbol. NAME is the name to print; if NULL then VAR's print + name will be used. STREAM is the ui_file on which to print the + value. INDENT specifies the number of indent levels to print + before printing the variable name. */ void -print_variable_value (struct symbol *var, struct frame_info *frame, - struct ui_file *stream) +print_variable_and_value (const char *name, struct symbol *var, + struct frame_info *frame, + struct ui_file *stream, int indent) { - struct value *val = read_var_value (var, frame); + struct value *val; struct value_print_options opts; + if (!name) + name = SYMBOL_PRINT_NAME (var); + + fprintf_filtered (stream, "%s%s = ", n_spaces (2 * indent), name); + + val = read_var_value (var, frame); get_user_print_options (&opts); - value_print (val, stream, &opts); + common_val_print (val, stream, indent, &opts, current_language); + fprintf_filtered (stream, "\n"); } static void diff --git a/gdb/stack.c b/gdb/stack.c index 3c1019b22c1..51dd1bc752e 100644 --- a/gdb/stack.c +++ b/gdb/stack.c @@ -1374,12 +1374,7 @@ print_block_frame_locals (struct block *b, struct frame_info *frame, if (SYMBOL_IS_ARGUMENT (sym)) break; values_printed = 1; - for (j = 0; j < num_tabs; j++) - fputs_filtered ("\t", stream); - fputs_filtered (SYMBOL_PRINT_NAME (sym), stream); - fputs_filtered (" = ", stream); - print_variable_value (sym, frame, stream); - fprintf_filtered (stream, "\n"); + print_variable_and_value (NULL, sym, frame, stream, 4 * num_tabs); break; default: @@ -1575,8 +1570,6 @@ print_frame_arg_vars (struct frame_info *frame, struct ui_file *stream) if (SYMBOL_IS_ARGUMENT (sym)) { values_printed = 1; - fputs_filtered (SYMBOL_PRINT_NAME (sym), stream); - fputs_filtered (" = ", stream); /* We have to look up the symbol because arguments can have two entries (one a parameter, one a local) and the one we @@ -1591,8 +1584,8 @@ print_frame_arg_vars (struct frame_info *frame, struct ui_file *stream) sym2 = lookup_symbol (SYMBOL_LINKAGE_NAME (sym), b, VAR_DOMAIN, NULL); - print_variable_value (sym2, frame, stream); - fprintf_filtered (stream, "\n"); + print_variable_and_value (SYMBOL_PRINT_NAME (sym), sym2, + frame, stream, 0); } } diff --git a/gdb/value.h b/gdb/value.h index a882004e5ce..29619194b11 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -557,9 +557,11 @@ extern int val_print_string (CORE_ADDR addr, int len, int width, struct ui_file *stream, const struct value_print_options *options); -extern void print_variable_value (struct symbol *var, - struct frame_info *frame, - struct ui_file *stream); +extern void print_variable_and_value (const char *name, + struct symbol *var, + struct frame_info *frame, + struct ui_file *stream, + int indent); extern int check_field (struct type *, const char *); -- 2.30.2