X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Ftypeprint.h;h=b93ea9f3630e44deb05ec1677d5a9c2d833091f2;hb=036003a671233c43e35b3004f91e4cbd61255cf3;hp=74006b3058f0cda1687e5b4343219f20ce40e4b4;hpb=bc8453a7bb617a5f14a465516f9f87c2ab6e05d5;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/typeprint.h b/gdb/typeprint.h index 74006b3058..b93ea9f363 100644 --- a/gdb/typeprint.h +++ b/gdb/typeprint.h @@ -1,5 +1,5 @@ /* Language independent support for printing types for GDB, the GNU debugger. - Copyright (C) 1986-2018 Free Software Foundation, Inc. + Copyright (C) 1986-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -38,6 +38,39 @@ struct print_offset_data field (where we expect the current field to be if there is no hole). */ unsigned int end_bitpos = 0; + + /* Print information about field at index FIELD_IDX of the struct type + TYPE and update this object. + + If the field is static, it simply prints the correct number of + spaces. + + The output is strongly based on pahole(1). */ + void update (struct type *type, unsigned int field_idx, + struct ui_file *stream); + + /* Call when all fields have been printed. This will print + information about any padding that may exist. LEVEL is the + desired indentation level. */ + void finish (struct type *type, int level, struct ui_file *stream); + + /* When printing the offsets of a struct and its fields (i.e., + 'ptype /o'; type_print_options::print_offsets), we use this many + characters when printing the offset information at the beginning + of the line. This is needed in order to generate the correct + amount of whitespaces when no offset info should be printed for a + certain field. */ + static const int indentation; + +private: + + /* Helper function for ptype/o implementation that prints + information about a hole, if necessary. STREAM is where to + print. BITPOS is the bitpos of the current field. FOR_WHAT is a + string describing the purpose of the hole. */ + + void maybe_print_hole (struct ui_file *stream, unsigned int bitpos, + const char *for_what); }; struct type_print_options