diff options
author | Tom Tromey <tom@tromey.com> | 2020-02-22 10:02:42 -0700 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-02-22 10:12:52 -0700 |
commit | 3f0cbb04d0fbb0923f2972efa95a4c767592860b (patch) | |
tree | 2cb2b5e19021553e6ba40a7497e30f39f45fa6d0 /gdb/valprint.c | |
parent | 7b3c27152b5695177a2cd5adc0d7b0255f99aca0 (diff) | |
download | gdb-3f0cbb04d0fbb0923f2972efa95a4c767592860b.zip gdb-3f0cbb04d0fbb0923f2972efa95a4c767592860b.tar.gz gdb-3f0cbb04d0fbb0923f2972efa95a4c767592860b.tar.bz2 |
Style field names in "print"
This changes gdb to use the "variable" style when printing field
names. I've added new tests for C and Rust, but not other languages.
I chose "variable" because that seemed most straightforward. However,
another option would be to introduce a new "field" style. Similarly,
this patch uses the variable style for enumerator constants -- but
again, a new style could be used if that's preferred.
gdb/ChangeLog
2020-02-22 Tom Tromey <tom@tromey.com>
* valprint.c (generic_val_print_enum_1)
(val_print_type_code_flags): Style member names.
* rust-lang.c (val_print_struct, rust_print_enum)
(rust_print_struct_def, rust_internal_print_type): Style member
names.
* p-valprint.c (pascal_object_print_value_fields): Style member
names. Only call fprintf_symbol_filtered for static members.
* m2-typeprint.c (m2_record_fields, m2_enum): Style member names.
* f-valprint.c (f_val_print): Style member names.
* f-typeprint.c (f_type_print_base): Style member names.
* cp-valprint.c (cp_print_value_fields): Style member names. Only
call fprintf_symbol_filtered for static members.
(cp_print_class_member): Style member names.
* c-typeprint.c (c_print_type_1, c_type_print_base_1): Style
member names.
* ada-valprint.c (ada_print_scalar): Style enum names.
(ada_val_print_enum): Likewise.
* ada-typeprint.c (print_enum_type): Style enum names.
gdb/testsuite/ChangeLog
2020-02-22 Tom Tromey <tom@tromey.com>
* gdb.rust/rust-style.rs: New file.
* gdb.rust/rust-style.exp: New file.
* gdb.base/style.exp: Test structure printing.
* gdb.base/style.c (struct some_struct): New type.
(enum etype): New type.
(struct_value): New global.
Change-Id: I070e1293c6cc830c9ea916af8243410aa384e944
Diffstat (limited to 'gdb/valprint.c')
-rw-r--r-- | gdb/valprint.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gdb/valprint.c b/gdb/valprint.c index ee37022..8adbb3d 100644 --- a/gdb/valprint.c +++ b/gdb/valprint.c @@ -625,7 +625,8 @@ generic_val_print_enum_1 (struct type *type, LONGEST val, } if (i < len) { - fputs_filtered (TYPE_FIELD_NAME (type, i), stream); + fputs_styled (TYPE_FIELD_NAME (type, i), variable_name_style.style (), + stream); } else if (TYPE_FLAG_ENUM (type)) { @@ -655,7 +656,8 @@ generic_val_print_enum_1 (struct type *type, LONGEST val, fputs_filtered (" | ", stream); val &= ~TYPE_FIELD_ENUMVAL (type, i); - fputs_filtered (TYPE_FIELD_NAME (type, i), stream); + fputs_styled (TYPE_FIELD_NAME (type, i), + variable_name_style.style (), stream); } } @@ -1268,8 +1270,10 @@ val_print_type_code_flags (struct type *type, const gdb_byte *valaddr, && TYPE_FIELD_BITSIZE (type, field) == 1) { if (val & ((ULONGEST)1 << TYPE_FIELD_BITPOS (type, field))) - fprintf_filtered (stream, " %s", - TYPE_FIELD_NAME (type, field)); + fprintf_filtered + (stream, " %ps", + styled_string (variable_name_style.style (), + TYPE_FIELD_NAME (type, field))); } else { @@ -1279,8 +1283,9 @@ val_print_type_code_flags (struct type *type, const gdb_byte *valaddr, if (field_len < sizeof (ULONGEST) * TARGET_CHAR_BIT) field_val &= ((ULONGEST) 1 << field_len) - 1; - fprintf_filtered (stream, " %s=", - TYPE_FIELD_NAME (type, field)); + fprintf_filtered (stream, " %ps=", + styled_string (variable_name_style.style (), + TYPE_FIELD_NAME (type, field))); if (TYPE_CODE (field_type) == TYPE_CODE_ENUM) generic_val_print_enum_1 (field_type, field_val, stream); else |