aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Tromey <tom@tromey.com>2016-04-26 16:45:21 -0600
committerTom Tromey <tom@tromey.com>2016-05-17 12:02:00 -0600
commit00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582 (patch)
tree7e30c68e44022dc571b22761df01573cad6b8dce
parentdcd1f97951b432032fd0728992b1384064663701 (diff)
downloadgdb-00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582.zip
gdb-00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582.tar.gz
gdb-00272ec4b0cc22c1b9d60d39ce7bf5b2d5512582.tar.bz2
Add array start and end strings to generic_val_print_decorations
For Rust value-printing, I wanted to use generic_val_print_array, but I also wanted to control the starting and ending strings. This patch adds new strings to generic_val_print_decorations, updates generic_val_print_array to use them, and updates all the existing instances of generic_val_print_decorations. 2016-05-17 Tom Tromey <tom@tromey.com> * valprint.h (struct generic_val_print_array) <array_start, array_end>: New fields. * valprint.c (generic_val_print_array): Add "decorations" parameter. Use "array_start", "array_end". (generic_val_print) <TYPE_CODE_ARRAY>: Update. * p-valprint.c (p_decorations): Update. * m2-valprint.c (m2_decorations): Update. * f-valprint.c (f_decorations): Update. * c-valprint.c (c_decorations): Update.
-rw-r--r--gdb/ChangeLog12
-rw-r--r--gdb/c-valprint.c4
-rw-r--r--gdb/f-valprint.c2
-rw-r--r--gdb/m2-valprint.c4
-rw-r--r--gdb/p-valprint.c4
-rw-r--r--gdb/valprint.c16
-rw-r--r--gdb/valprint.h4
7 files changed, 36 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index cad948f..0b7af7a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,17 @@
2016-05-17 Tom Tromey <tom@tromey.com>
+ * valprint.h (struct generic_val_print_array) <array_start,
+ array_end>: New fields.
+ * valprint.c (generic_val_print_array): Add "decorations"
+ parameter. Use "array_start", "array_end".
+ (generic_val_print) <TYPE_CODE_ARRAY>: Update.
+ * p-valprint.c (p_decorations): Update.
+ * m2-valprint.c (m2_decorations): Update.
+ * f-valprint.c (f_decorations): Update.
+ * c-valprint.c (c_decorations): Update.
+
+2016-05-17 Tom Tromey <tom@tromey.com>
+
* NEWS: Add "maint selftest" entry.
* selftest.h: New file.
* selftest.c: New file.
diff --git a/gdb/c-valprint.c b/gdb/c-valprint.c
index e1da3d5..61302a3 100644
--- a/gdb/c-valprint.c
+++ b/gdb/c-valprint.c
@@ -124,7 +124,9 @@ static const struct generic_val_print_decorations c_decorations =
" * I",
"true",
"false",
- "void"
+ "void",
+ "{",
+ "}"
};
/* Print a pointer based on the type of its target.
diff --git a/gdb/f-valprint.c b/gdb/f-valprint.c
index 71bd2c3..1264737 100644
--- a/gdb/f-valprint.c
+++ b/gdb/f-valprint.c
@@ -203,6 +203,8 @@ static const struct generic_val_print_decorations f_decorations =
".TRUE.",
".FALSE.",
"VOID",
+ "{",
+ "}"
};
/* See val_print for a description of the various parameters of this
diff --git a/gdb/m2-valprint.c b/gdb/m2-valprint.c
index 73fbdfe..2d3a32f 100644
--- a/gdb/m2-valprint.c
+++ b/gdb/m2-valprint.c
@@ -301,7 +301,9 @@ static const struct generic_val_print_decorations m2_decorations =
" * I",
"TRUE",
"FALSE",
- "void"
+ "void",
+ "{",
+ "}"
};
/* See val_print for a description of the various parameters of this
diff --git a/gdb/p-valprint.c b/gdb/p-valprint.c
index 72dc6fd..3e840d8 100644
--- a/gdb/p-valprint.c
+++ b/gdb/p-valprint.c
@@ -49,7 +49,9 @@ static const struct generic_val_print_decorations p_decorations =
" * I",
"true",
"false",
- "void"
+ "void",
+ "{",
+ "}"
};
/* See val_print for a description of the various parameters of this
diff --git a/gdb/valprint.c b/gdb/valprint.c
index 720942b..cea69f3 100644
--- a/gdb/valprint.c
+++ b/gdb/valprint.c
@@ -407,10 +407,12 @@ print_unpacked_pointer (struct type *type, struct type *elttype,
static void
generic_val_print_array (struct type *type, const gdb_byte *valaddr,
- int embedded_offset, CORE_ADDR address,
- struct ui_file *stream, int recurse,
- const struct value *original_value,
- const struct value_print_options *options)
+ int embedded_offset, CORE_ADDR address,
+ struct ui_file *stream, int recurse,
+ const struct value *original_value,
+ const struct value_print_options *options,
+ const struct
+ generic_val_print_decorations *decorations)
{
struct type *unresolved_elttype = TYPE_TARGET_TYPE (type);
struct type *elttype = check_typedef (unresolved_elttype);
@@ -427,11 +429,11 @@ generic_val_print_array (struct type *type, const gdb_byte *valaddr,
print_spaces_filtered (2 + 2 * recurse, stream);
}
- fprintf_filtered (stream, "{");
+ fputs_filtered (decorations->array_start, stream);
val_print_array_elements (type, valaddr, embedded_offset,
address, stream,
recurse, original_value, options, 0);
- fprintf_filtered (stream, "}");
+ fputs_filtered (decorations->array_end, stream);
}
else
{
@@ -851,7 +853,7 @@ generic_val_print (struct type *type, const gdb_byte *valaddr,
{
case TYPE_CODE_ARRAY:
generic_val_print_array (type, valaddr, embedded_offset, address, stream,
- recurse, original_value, options);
+ recurse, original_value, options, decorations);
break;
case TYPE_CODE_MEMBERPTR:
diff --git a/gdb/valprint.h b/gdb/valprint.h
index 1a83cb5..451b5fe 100644
--- a/gdb/valprint.h
+++ b/gdb/valprint.h
@@ -186,6 +186,10 @@ struct generic_val_print_decorations
/* What to print when we see TYPE_CODE_VOID. */
const char *void_name;
+
+ /* Array start and end strings. */
+ const char *array_start;
+ const char *array_end;
};