class Type
Defined at line 15 of file ../../src/developer/debug/zxdb/symbols/type.h
Public Methods
const std::string & GetAssignedName ()
Symbol overrides.
Defined at line 18 of file ../../src/developer/debug/zxdb/symbols/type.h
const Type * StripCV ()
Strips "const" and "volatile", and "atomic" qualifiers, as well as the uncommon "restrict" C
qualifier. See StripCVT() for why most callers will want a "concrete" type. This function does
the maximum, qualifier stripping that doesn't change the name of the type.
Defined at line 19 of file ../../src/developer/debug/zxdb/symbols/type.cc
const Type * StripCVT ()
Strips "const", "volatile", "atomic", and follows typedefs to get the underlying type. This
also strips "restrict" for C (unusual), and handles C++ "using" statements for defining types
(which are encoded in DWARF as typedefs).
Prefer ExprValue::GetConcreteType() or EvalContext::GetConcreteType() when possible. That
version will also expand forward definitions which is almost always the right thing to do. This
variant doesn't have enough context from the symbol system so just follows the type pointers.
It is on the Type class rather than the ModifiedType class so that calling code can
unconditionally call type->StripCVT().
Defined at line 21 of file ../../src/developer/debug/zxdb/symbols/type.cc
void set_assigned_name (std::string n)
The name assigned in the DWARF file. This will be empty for modified types (Which usually have
no assigned name). See Symbol::GetAssignedName).
Defined at line 39 of file ../../src/developer/debug/zxdb/symbols/type.h
bool is_declaration ()
Types are declarations when the full definition of the type isn't known. This corresponds to a
C forward declaration. In some cases, the type definition isn't even encoded in the compilation
unit because the full definition was never seen.
Defined at line 44 of file ../../src/developer/debug/zxdb/symbols/type.h
void set_is_declaration (bool id)
Defined at line 45 of file ../../src/developer/debug/zxdb/symbols/type.h
uint32_t byte_size ()
For forward-defines where the size of the structure is not known, the byte size will be 0.
Defined at line 48 of file ../../src/developer/debug/zxdb/symbols/type.h
void set_byte_size (uint32_t bs)
Defined at line 49 of file ../../src/developer/debug/zxdb/symbols/type.h
Protected Methods
void Type (DwarfTag kind)
Defined at line 13 of file ../../src/developer/debug/zxdb/symbols/type.cc
void ~Type ()
Defined at line 15 of file ../../src/developer/debug/zxdb/symbols/type.cc
const Type * AsType ()
Symbol protected overrides:
Defined at line 17 of file ../../src/developer/debug/zxdb/symbols/type.cc
Friends
class MakeRefCountedHelper
class RefCountedThreadSafe