GDB (API)
|
#include "gdbtypes.h"
Public Attributes | |
short | n_baseclasses |
short | vptr_fieldno |
short | nfn_fields |
unsigned short | n_template_arguments |
int | is_dynamic: 2 |
unsigned int | is_java: 1 |
struct type * | vptr_basetype |
B_TYPE * | virtual_field_bits |
B_TYPE * | private_field_bits |
B_TYPE * | protected_field_bits |
B_TYPE * | ignore_field_bits |
struct fn_fieldlist * | fn_fieldlists |
struct typedef_field * | typedef_field |
unsigned | typedef_field_count |
struct symbol ** | template_arguments |
C++ language-specific information for TYPE_CODE_STRUCT and TYPE_CODE_UNION nodes.
Definition at line 914 of file gdbtypes.h.
struct fn_fieldlist* cplus_struct_type::fn_fieldlists |
For classes, structures, and unions, a description of each field, which consists of an overloaded name, followed by the types of arguments that the method expects, and then the name after it has been renamed to make it distinct.
fn_fieldlists points to an array of nfn_fields of these.
Definition at line 1007 of file gdbtypes.h.
B_TYPE* cplus_struct_type::ignore_field_bits |
For classes with fields to be ignored, either this is optimized out or this field has length 0.
Definition at line 998 of file gdbtypes.h.
int cplus_struct_type::is_dynamic |
One if this struct is a dynamic class, as defined by the Itanium C++ ABI: if it requires a virtual table pointer, because it or any of its base classes have one or more virtual member functions or virtual base classes. Minus one if not dynamic. Zero if not yet computed.
Definition at line 954 of file gdbtypes.h.
unsigned int cplus_struct_type::is_java |
Non-zero if this type came from a Java CU.
Definition at line 958 of file gdbtypes.h.
short cplus_struct_type::n_baseclasses |
Number of base classes this type derives from. The baseclasses are stored in the first N_BASECLASSES fields (i.e. the `fields' field of the struct type). The only fields of struct field that are used are: type, name, loc.bitpos.
Definition at line 921 of file gdbtypes.h.
unsigned short cplus_struct_type::n_template_arguments |
Number of template arguments.
Definition at line 946 of file gdbtypes.h.
short cplus_struct_type::nfn_fields |
Number of methods with unique names. All overloaded methods with the same name count only once.
Definition at line 942 of file gdbtypes.h.
B_TYPE* cplus_struct_type::private_field_bits |
For classes with private fields, the number of fields is given by nfields and private_field_bits is a bit vector containing one bit per field.
If the field is private, the corresponding bit will be set.
Definition at line 985 of file gdbtypes.h.
B_TYPE* cplus_struct_type::protected_field_bits |
For classes with protected fields, the number of fields is given by nfields and protected_field_bits is a bit vector containing one bit per field.
If the field is private, the corresponding bit will be set.
Definition at line 993 of file gdbtypes.h.
struct symbol** cplus_struct_type::template_arguments |
The template arguments. This is an array with N_TEMPLATE_ARGUMENTS elements. This is NULL for non-template classes.
Definition at line 1020 of file gdbtypes.h.
struct typedef_field* cplus_struct_type::typedef_field |
typedefs defined inside this class. typedef_field points to an array of typedef_field_count elements.
Definition at line 1012 of file gdbtypes.h.
unsigned cplus_struct_type::typedef_field_count |
Definition at line 1014 of file gdbtypes.h.
B_TYPE* cplus_struct_type::virtual_field_bits |
For derived classes, the number of base classes is given by n_baseclasses and virtual_field_bits is a bit vector containing one bit per base class. If the base class is virtual, the corresponding bit will be set. I.E, given:
class A{}; class B{}; class C : public B, public virtual A {};
B is a baseclass of C; A is a virtual baseclass for C. This is a C++ 2.0 language feature.
Definition at line 977 of file gdbtypes.h.
struct type* cplus_struct_type::vptr_basetype |
The base class which defined the virtual function table pointer.
Definition at line 962 of file gdbtypes.h.
short cplus_struct_type::vptr_fieldno |
Field number of the virtual function table pointer in VPTR_BASETYPE. All access to this field must be through TYPE_VPTR_FIELDNO as one thing it does is check whether the field has been initialized. Initially TYPE_RAW_CPLUS_SPECIFIC has the value of cplus_struct_default, which for portability reasons doesn't initialize this field. TYPE_VPTR_FIELDNO returns -1 for this case.
If -1, we were unable to find the virtual function table pointer in initial symbol reading, and get_vptr_fieldno should be called to find it if possible. get_vptr_fieldno will update this field if possible. Otherwise the value is left at -1.
Unused if this type does not have virtual functions.
Definition at line 937 of file gdbtypes.h.