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
This commit is contained in:
parent
7b3c27152b
commit
3f0cbb04d0
16 changed files with 190 additions and 32 deletions
|
@ -1,3 +1,24 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2020-02-21 Tom Tromey <tom@tromey.com>
|
2020-02-21 Tom Tromey <tom@tromey.com>
|
||||||
|
|
||||||
* psympriv.h (struct partial_symtab): Update comment.
|
* psympriv.h (struct partial_symtab): Update comment.
|
||||||
|
|
|
@ -326,7 +326,8 @@ print_enum_type (struct type *type, struct ui_file *stream)
|
||||||
if (i)
|
if (i)
|
||||||
fprintf_filtered (stream, ", ");
|
fprintf_filtered (stream, ", ");
|
||||||
wrap_here (" ");
|
wrap_here (" ");
|
||||||
fputs_filtered (ada_enum_name (TYPE_FIELD_NAME (type, i)), stream);
|
fputs_styled (ada_enum_name (TYPE_FIELD_NAME (type, i)),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
if (lastval != TYPE_FIELD_ENUMVAL (type, i))
|
if (lastval != TYPE_FIELD_ENUMVAL (type, i))
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, " => %s",
|
fprintf_filtered (stream, " => %s",
|
||||||
|
|
|
@ -418,7 +418,8 @@ ada_print_scalar (struct type *type, LONGEST val, struct ui_file *stream)
|
||||||
}
|
}
|
||||||
if (i < len)
|
if (i < len)
|
||||||
{
|
{
|
||||||
fputs_filtered (ada_enum_name (TYPE_FIELD_NAME (type, i)), stream);
|
fputs_styled (ada_enum_name (TYPE_FIELD_NAME (type, i)),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -956,9 +957,11 @@ ada_val_print_enum (struct type *type, const gdb_byte *valaddr,
|
||||||
const char *name = ada_enum_name (TYPE_FIELD_NAME (type, i));
|
const char *name = ada_enum_name (TYPE_FIELD_NAME (type, i));
|
||||||
|
|
||||||
if (name[0] == '\'')
|
if (name[0] == '\'')
|
||||||
fprintf_filtered (stream, "%ld %s", (long) val, name);
|
fprintf_filtered (stream, "%ld %ps", (long) val,
|
||||||
|
styled_string (variable_name_style.style (),
|
||||||
|
name));
|
||||||
else
|
else
|
||||||
fputs_filtered (name, stream);
|
fputs_styled (name, variable_name_style.style (), stream);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
print_longest (stream, 'd', 0, val);
|
print_longest (stream, 'd', 0, val);
|
||||||
|
|
|
@ -148,7 +148,7 @@ c_print_type_1 (struct type *type,
|
||||||
if (code == TYPE_CODE_FUNC || code == TYPE_CODE_METHOD)
|
if (code == TYPE_CODE_FUNC || code == TYPE_CODE_METHOD)
|
||||||
fputs_styled (varstring, function_name_style.style (), stream);
|
fputs_styled (varstring, function_name_style.style (), stream);
|
||||||
else
|
else
|
||||||
fputs_filtered (varstring, stream);
|
fputs_styled (varstring, variable_name_style.style (), stream);
|
||||||
|
|
||||||
/* For demangled function names, we have the arglist as part of
|
/* For demangled function names, we have the arglist as part of
|
||||||
the name, so don't print an additional pair of ()'s. */
|
the name, so don't print an additional pair of ()'s. */
|
||||||
|
@ -1595,7 +1595,8 @@ c_type_print_base_1 (struct type *type, struct ui_file *stream,
|
||||||
if (i)
|
if (i)
|
||||||
fprintf_filtered (stream, ", ");
|
fprintf_filtered (stream, ", ");
|
||||||
wrap_here (" ");
|
wrap_here (" ");
|
||||||
fputs_filtered (TYPE_FIELD_NAME (type, i), stream);
|
fputs_styled (TYPE_FIELD_NAME (type, i),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
if (lastval != TYPE_FIELD_ENUMVAL (type, i))
|
if (lastval != TYPE_FIELD_ENUMVAL (type, i))
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, " = %s",
|
fprintf_filtered (stream, " = %s",
|
||||||
|
|
|
@ -235,11 +235,16 @@ cp_print_value_fields (struct type *type, struct type *real_type,
|
||||||
annotate_field_begin (TYPE_FIELD_TYPE (type, i));
|
annotate_field_begin (TYPE_FIELD_TYPE (type, i));
|
||||||
|
|
||||||
if (field_is_static (&TYPE_FIELD (type, i)))
|
if (field_is_static (&TYPE_FIELD (type, i)))
|
||||||
fputs_filtered ("static ", stream);
|
{
|
||||||
fprintf_symbol_filtered (stream,
|
fputs_filtered ("static ", stream);
|
||||||
TYPE_FIELD_NAME (type, i),
|
fprintf_symbol_filtered (stream,
|
||||||
current_language->la_language,
|
TYPE_FIELD_NAME (type, i),
|
||||||
DMGL_PARAMS | DMGL_ANSI);
|
current_language->la_language,
|
||||||
|
DMGL_PARAMS | DMGL_ANSI);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fputs_styled (TYPE_FIELD_NAME (type, i),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
annotate_field_name_end ();
|
annotate_field_name_end ();
|
||||||
|
|
||||||
/* We tweak various options in a few cases below. */
|
/* We tweak various options in a few cases below. */
|
||||||
|
@ -782,7 +787,8 @@ cp_print_class_member (const gdb_byte *valaddr, struct type *type,
|
||||||
else
|
else
|
||||||
c_type_print_base (self_type, stream, 0, 0, &type_print_raw_options);
|
c_type_print_base (self_type, stream, 0, 0, &type_print_raw_options);
|
||||||
fprintf_filtered (stream, "::");
|
fprintf_filtered (stream, "::");
|
||||||
fputs_filtered (TYPE_FIELD_NAME (self_type, fieldno), stream);
|
fputs_styled (TYPE_FIELD_NAME (self_type, fieldno),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
fprintf_filtered (stream, "%ld", (long) val);
|
fprintf_filtered (stream, "%ld", (long) val);
|
||||||
|
|
|
@ -435,7 +435,8 @@ f_type_print_base (struct type *type, struct ui_file *stream, int show,
|
||||||
f_type_print_base (TYPE_FIELD_TYPE (type, index), stream,
|
f_type_print_base (TYPE_FIELD_TYPE (type, index), stream,
|
||||||
show - 1, level + 4);
|
show - 1, level + 4);
|
||||||
fputs_filtered (" :: ", stream);
|
fputs_filtered (" :: ", stream);
|
||||||
fputs_filtered (TYPE_FIELD_NAME (type, index), stream);
|
fputs_styled (TYPE_FIELD_NAME (type, index),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index),
|
f_type_print_varspec_suffix (TYPE_FIELD_TYPE (type, index),
|
||||||
stream, show - 1, 0, 0, 0, false);
|
stream, show - 1, 0, 0, 0, false);
|
||||||
fputs_filtered ("\n", stream);
|
fputs_filtered ("\n", stream);
|
||||||
|
|
|
@ -341,7 +341,8 @@ f_val_print (struct type *type, int embedded_offset,
|
||||||
field_name = TYPE_FIELD_NAME (type, index);
|
field_name = TYPE_FIELD_NAME (type, index);
|
||||||
if (field_name != NULL)
|
if (field_name != NULL)
|
||||||
{
|
{
|
||||||
fputs_filtered (field_name, stream);
|
fputs_styled (field_name, variable_name_style.style (),
|
||||||
|
stream);
|
||||||
fputs_filtered (" = ", stream);
|
fputs_filtered (" = ", stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -563,7 +563,8 @@ m2_record_fields (struct type *type, struct ui_file *stream, int show,
|
||||||
QUIT;
|
QUIT;
|
||||||
|
|
||||||
print_spaces_filtered (level + 4, stream);
|
print_spaces_filtered (level + 4, stream);
|
||||||
fputs_filtered (TYPE_FIELD_NAME (type, i), stream);
|
fputs_styled (TYPE_FIELD_NAME (type, i),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
fputs_filtered (" : ", stream);
|
fputs_filtered (" : ", stream);
|
||||||
m2_print_type (TYPE_FIELD_TYPE (type, i),
|
m2_print_type (TYPE_FIELD_TYPE (type, i),
|
||||||
"",
|
"",
|
||||||
|
@ -608,7 +609,8 @@ m2_enum (struct type *type, struct ui_file *stream, int show, int level)
|
||||||
if (i > 0)
|
if (i > 0)
|
||||||
fprintf_filtered (stream, ", ");
|
fprintf_filtered (stream, ", ");
|
||||||
wrap_here (" ");
|
wrap_here (" ");
|
||||||
fputs_filtered (TYPE_FIELD_NAME (type, i), stream);
|
fputs_styled (TYPE_FIELD_NAME (type, i),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
if (lastval != TYPE_FIELD_ENUMVAL (type, i))
|
if (lastval != TYPE_FIELD_ENUMVAL (type, i))
|
||||||
{
|
{
|
||||||
fprintf_filtered (stream, " = %s",
|
fprintf_filtered (stream, " = %s",
|
||||||
|
|
|
@ -605,10 +605,16 @@ pascal_object_print_value_fields (struct type *type, const gdb_byte *valaddr,
|
||||||
annotate_field_begin (TYPE_FIELD_TYPE (type, i));
|
annotate_field_begin (TYPE_FIELD_TYPE (type, i));
|
||||||
|
|
||||||
if (field_is_static (&TYPE_FIELD (type, i)))
|
if (field_is_static (&TYPE_FIELD (type, i)))
|
||||||
fputs_filtered ("static ", stream);
|
{
|
||||||
fprintf_symbol_filtered (stream, TYPE_FIELD_NAME (type, i),
|
fputs_filtered ("static ", stream);
|
||||||
language_cplus,
|
fprintf_symbol_filtered (stream,
|
||||||
DMGL_PARAMS | DMGL_ANSI);
|
TYPE_FIELD_NAME (type, i),
|
||||||
|
current_language->la_language,
|
||||||
|
DMGL_PARAMS | DMGL_ANSI);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
fputs_styled (TYPE_FIELD_NAME (type, i),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
annotate_field_name_end ();
|
annotate_field_name_end ();
|
||||||
fputs_filtered (" = ", stream);
|
fputs_filtered (" = ", stream);
|
||||||
annotate_field_value ();
|
annotate_field_value ();
|
||||||
|
|
|
@ -436,7 +436,8 @@ val_print_struct (struct type *type, int embedded_offset,
|
||||||
|
|
||||||
if (!is_tuple && !is_tuple_struct)
|
if (!is_tuple && !is_tuple_struct)
|
||||||
{
|
{
|
||||||
fputs_filtered (TYPE_FIELD_NAME (type, i), stream);
|
fputs_styled (TYPE_FIELD_NAME (type, i),
|
||||||
|
variable_name_style.style (), stream);
|
||||||
fputs_filtered (": ", stream);
|
fputs_filtered (": ", stream);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -515,8 +516,9 @@ rust_print_enum (struct type *type, int embedded_offset,
|
||||||
first_field = false;
|
first_field = false;
|
||||||
|
|
||||||
if (!is_tuple)
|
if (!is_tuple)
|
||||||
fprintf_filtered (stream, "%s: ",
|
fprintf_filtered (stream, "%ps: ",
|
||||||
TYPE_FIELD_NAME (variant_type, j));
|
styled_string (variable_name_style.style (),
|
||||||
|
TYPE_FIELD_NAME (variant_type, j)));
|
||||||
|
|
||||||
val_print (TYPE_FIELD_TYPE (variant_type, j),
|
val_print (TYPE_FIELD_TYPE (variant_type, j),
|
||||||
(embedded_offset
|
(embedded_offset
|
||||||
|
@ -792,9 +794,12 @@ rust_print_struct_def (struct type *type, const char *varstring,
|
||||||
if (!for_rust_enum || flags->print_offsets)
|
if (!for_rust_enum || flags->print_offsets)
|
||||||
print_spaces_filtered (level + 2, stream);
|
print_spaces_filtered (level + 2, stream);
|
||||||
if (is_enum)
|
if (is_enum)
|
||||||
fputs_filtered (TYPE_FIELD_NAME (type, i), stream);
|
fputs_styled (TYPE_FIELD_NAME (type, i), variable_name_style.style (),
|
||||||
|
stream);
|
||||||
else if (!is_tuple_struct)
|
else if (!is_tuple_struct)
|
||||||
fprintf_filtered (stream, "%s: ", TYPE_FIELD_NAME (type, i));
|
fprintf_filtered (stream, "%ps: ",
|
||||||
|
styled_string (variable_name_style.style (),
|
||||||
|
TYPE_FIELD_NAME (type, i)));
|
||||||
|
|
||||||
rust_internal_print_type (TYPE_FIELD_TYPE (type, i), NULL,
|
rust_internal_print_type (TYPE_FIELD_TYPE (type, i), NULL,
|
||||||
stream, (is_enum ? show : show - 1),
|
stream, (is_enum ? show : show - 1),
|
||||||
|
@ -943,7 +948,9 @@ rust_internal_print_type (struct type *type, const char *varstring,
|
||||||
&& name[len] == ':'
|
&& name[len] == ':'
|
||||||
&& name[len + 1] == ':')
|
&& name[len + 1] == ':')
|
||||||
name += len + 2;
|
name += len + 2;
|
||||||
fprintfi_filtered (level + 2, stream, "%s,\n", name);
|
fprintfi_filtered (level + 2, stream, "%ps,\n",
|
||||||
|
styled_string (variable_name_style.style (),
|
||||||
|
name));
|
||||||
}
|
}
|
||||||
|
|
||||||
fputs_filtered ("}", stream);
|
fputs_filtered ("}", stream);
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
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.
|
||||||
|
|
||||||
2020-02-21 Tom de Vries <tdevries@suse.de>
|
2020-02-21 Tom de Vries <tdevries@suse.de>
|
||||||
|
|
||||||
PR go/18926
|
PR go/18926
|
||||||
|
|
|
@ -15,6 +15,21 @@
|
||||||
|
|
||||||
#define SOME_MACRO 23
|
#define SOME_MACRO 23
|
||||||
|
|
||||||
|
enum etype
|
||||||
|
{
|
||||||
|
VALUE_ONE = 1,
|
||||||
|
VALUE_TWO = 2
|
||||||
|
};
|
||||||
|
|
||||||
|
struct some_struct
|
||||||
|
{
|
||||||
|
int int_field;
|
||||||
|
char *string_field;
|
||||||
|
enum etype e_field;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct some_struct struct_value = { 23, "skidoo", VALUE_TWO };
|
||||||
|
|
||||||
int some_called_function (void)
|
int some_called_function (void)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -87,6 +87,13 @@ save_vars { env(TERM) } {
|
||||||
# Somewhere should see the call to the function.
|
# Somewhere should see the call to the function.
|
||||||
gdb_test "disassemble main" "[style $hex address].*$func.*"
|
gdb_test "disassemble main" "[style $hex address].*$func.*"
|
||||||
|
|
||||||
|
set ifield [style int_field variable]
|
||||||
|
set sfield [style string_field variable]
|
||||||
|
set efield [style e_field variable]
|
||||||
|
set evalue [style VALUE_TWO variable]
|
||||||
|
gdb_test "print struct_value" \
|
||||||
|
"\{$ifield = 23,.*$sfield = .*,.*$efield = $evalue.*"
|
||||||
|
|
||||||
gdb_exit
|
gdb_exit
|
||||||
gdb_spawn
|
gdb_spawn
|
||||||
|
|
||||||
|
|
44
gdb/testsuite/gdb.rust/rust-style.exp
Normal file
44
gdb/testsuite/gdb.rust/rust-style.exp
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
# Copyright 2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# Test CLI output styling for Rust.
|
||||||
|
|
||||||
|
load_lib rust-support.exp
|
||||||
|
if {[skip_rust_tests]} {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
save_vars { env(TERM) } {
|
||||||
|
# We need an ANSI-capable terminal to get the output.
|
||||||
|
setenv TERM ansi
|
||||||
|
|
||||||
|
standard_testfile .rs
|
||||||
|
if {[prepare_for_testing "failed to prepare" $testfile $srcfile \
|
||||||
|
{debug rust}]} {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
set line [gdb_get_line_number "breakpoint"]
|
||||||
|
if {![runto ${srcfile}:$line]} {
|
||||||
|
untested "could not run to breakpoint"
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
|
||||||
|
set vfield [style value variable]
|
||||||
|
set v2field [style value2 variable]
|
||||||
|
gdb_test "print v" \
|
||||||
|
"Two\{$vfield: 23, $v2field: 97\}"
|
||||||
|
|
||||||
|
}
|
29
gdb/testsuite/gdb.rust/rust-style.rs
Normal file
29
gdb/testsuite/gdb.rust/rust-style.rs
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
// Copyright (C) 2020 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
// This program is free software; you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU General Public License as published by
|
||||||
|
// the Free Software Foundation; either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU General Public License
|
||||||
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#![allow(dead_code)]
|
||||||
|
#![allow(unused_variables)]
|
||||||
|
#![allow(unused_assignments)]
|
||||||
|
|
||||||
|
enum EnumType {
|
||||||
|
One(i32),
|
||||||
|
Two{value: i32, value2: i32},
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
let v = EnumType::Two{ value: 23, value2: 97 };
|
||||||
|
|
||||||
|
println!(""); // breakpoint
|
||||||
|
}
|
|
@ -625,7 +625,8 @@ generic_val_print_enum_1 (struct type *type, LONGEST val,
|
||||||
}
|
}
|
||||||
if (i < len)
|
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))
|
else if (TYPE_FLAG_ENUM (type))
|
||||||
{
|
{
|
||||||
|
@ -655,7 +656,8 @@ generic_val_print_enum_1 (struct type *type, LONGEST val,
|
||||||
fputs_filtered (" | ", stream);
|
fputs_filtered (" | ", stream);
|
||||||
|
|
||||||
val &= ~TYPE_FIELD_ENUMVAL (type, i);
|
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)
|
&& TYPE_FIELD_BITSIZE (type, field) == 1)
|
||||||
{
|
{
|
||||||
if (val & ((ULONGEST)1 << TYPE_FIELD_BITPOS (type, field)))
|
if (val & ((ULONGEST)1 << TYPE_FIELD_BITPOS (type, field)))
|
||||||
fprintf_filtered (stream, " %s",
|
fprintf_filtered
|
||||||
TYPE_FIELD_NAME (type, field));
|
(stream, " %ps",
|
||||||
|
styled_string (variable_name_style.style (),
|
||||||
|
TYPE_FIELD_NAME (type, field)));
|
||||||
}
|
}
|
||||||
else
|
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)
|
if (field_len < sizeof (ULONGEST) * TARGET_CHAR_BIT)
|
||||||
field_val &= ((ULONGEST) 1 << field_len) - 1;
|
field_val &= ((ULONGEST) 1 << field_len) - 1;
|
||||||
fprintf_filtered (stream, " %s=",
|
fprintf_filtered (stream, " %ps=",
|
||||||
TYPE_FIELD_NAME (type, field));
|
styled_string (variable_name_style.style (),
|
||||||
|
TYPE_FIELD_NAME (type, field)));
|
||||||
if (TYPE_CODE (field_type) == TYPE_CODE_ENUM)
|
if (TYPE_CODE (field_type) == TYPE_CODE_ENUM)
|
||||||
generic_val_print_enum_1 (field_type, field_val, stream);
|
generic_val_print_enum_1 (field_type, field_val, stream);
|
||||||
else
|
else
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue