class InheritedFrom

Defined at line 25 of file ../../src/developer/debug/zxdb/symbols/inherited_from.h

Defines the relationship between two derived classes. This class will be a member of the derived

class, and indicates the type of the base class and how to get to it.

DWARF has two ways of encoding this.

- The location can be a constant in which case this means it's an offset from the containing

struct's beginning. This is the most common case.

- The location can be an expression. In this case the derived class' offset is pushed on the

stack and the expression is evaluated to get the address of the base class. This is used for

C++ virtual inheritance where the pointer to the base class is stored near the beginning

of the class.

Public Methods

Kind kind ()

Defined at line 35 of file ../../src/developer/debug/zxdb/symbols/inherited_from.h

const LazySymbol & from ()

Defined at line 37 of file ../../src/developer/debug/zxdb/symbols/inherited_from.h

uint64_t offset ()

This is the DW_AT_data_member_location attribute for constant values. This will be valid

when kind() == kConstant. See class-level comment above.

Defined at line 41 of file ../../src/developer/debug/zxdb/symbols/inherited_from.h

const DwarfExpr & location_expression ()

This is the DW_AT_data_member_location attribute for general expression locations. This will be

valid when kind() == kExpression. See class-level comment above.

Defined at line 45 of file ../../src/developer/debug/zxdb/symbols/inherited_from.h

Protected Methods

const InheritedFrom * AsInheritedFrom ()

Symbol override.

Defined at line 17 of file ../../src/developer/debug/zxdb/symbols/inherited_from.cc

Enumerations

enum Kind
Name Value
kConstant 0
kExpression 1

How this location is expressed. See class-level comment above.

Defined at line 30 of file ../../src/developer/debug/zxdb/symbols/inherited_from.h

Friends

class MakeRefCountedHelper
class RefCountedThreadSafe