Debugger: Handle DW_AT_external for DIEVariable.
- This attribute flag indicates if a variable is visible outside of its compilation unit. Needed in order to handle global variable lookups.
This commit is contained in:
@@ -2307,6 +2307,15 @@ DIEVariable::AddAttribute_start_scope(uint16 attributeName,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
status_t
|
||||||
|
DIEVariable::AddAttribute_external(uint16 attributeName,
|
||||||
|
const AttributeValue& value)
|
||||||
|
{
|
||||||
|
fIsExternal = value.flag;
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// #pragma mark - DIEVolatileType
|
// #pragma mark - DIEVolatileType
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1449,6 +1449,8 @@ public:
|
|||||||
|
|
||||||
uint64 StartScope() const { return fStartScope; }
|
uint64 StartScope() const { return fStartScope; }
|
||||||
|
|
||||||
|
bool IsExternal() const { return fIsExternal; }
|
||||||
|
|
||||||
virtual status_t AddAttribute_const_value(uint16 attributeName,
|
virtual status_t AddAttribute_const_value(uint16 attributeName,
|
||||||
const AttributeValue& value);
|
const AttributeValue& value);
|
||||||
virtual status_t AddAttribute_type(uint16 attributeName,
|
virtual status_t AddAttribute_type(uint16 attributeName,
|
||||||
@@ -1461,10 +1463,12 @@ public:
|
|||||||
virtual status_t AddAttribute_start_scope(
|
virtual status_t AddAttribute_start_scope(
|
||||||
uint16 attributeName,
|
uint16 attributeName,
|
||||||
const AttributeValue& value);
|
const AttributeValue& value);
|
||||||
|
virtual status_t AddAttribute_external(
|
||||||
|
uint16 attributeName,
|
||||||
|
const AttributeValue& value);
|
||||||
|
|
||||||
// TODO:
|
// TODO:
|
||||||
// DW_AT_endianity
|
// DW_AT_endianity
|
||||||
// DW_AT_external
|
|
||||||
// DW_AT_segment
|
// DW_AT_segment
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -1474,6 +1478,7 @@ private:
|
|||||||
DebugInfoEntry* fSpecification;
|
DebugInfoEntry* fSpecification;
|
||||||
DIEVariable* fAbstractOrigin;
|
DIEVariable* fAbstractOrigin;
|
||||||
uint64 fStartScope;
|
uint64 fStartScope;
|
||||||
|
bool fIsExternal;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user