GDB (xrefs)
Public Attributes | List of all members
cplus_struct_type Struct Reference

#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 typevptr_basetype
 
B_TYPEvirtual_field_bits
 
B_TYPEprivate_field_bits
 
B_TYPEprotected_field_bits
 
B_TYPEignore_field_bits
 
struct fn_fieldlistfn_fieldlists
 
struct typedef_fieldtypedef_field
 
unsigned typedef_field_count
 
struct symbol ** template_arguments
 

Detailed Description

C++ language-specific information for TYPE_CODE_STRUCT and TYPE_CODE_UNION nodes.

Definition at line 914 of file gdbtypes.h.

Member Data Documentation

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.


The documentation for this struct was generated from the following file: