aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/f-valprint.c4
-rw-r--r--gdb/printcmd.c21
-rw-r--r--gdb/stack.c13
-rw-r--r--gdb/value.h8
5 files changed, 37 insertions, 21 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index e917700..8994407 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,17 @@
2008-12-22 Tom Tromey <tromey@redhat.com>
+ * 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 <tromey@redhat.com>
+
* python/python-value.c (valpy_length): Remove #if.
2008-12-22 Paul Pluzhnikov <ppluzhnikov@google.com>
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index f893b49..a2d2a20 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 6d6b915..c4262d5 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 3c1019b..51dd1bc 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 a882004..2961919 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 *);