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
|
||||
|
||||
|
||||
|
||||
@@ -1449,6 +1449,8 @@ public:
|
||||
|
||||
uint64 StartScope() const { return fStartScope; }
|
||||
|
||||
bool IsExternal() const { return fIsExternal; }
|
||||
|
||||
virtual status_t AddAttribute_const_value(uint16 attributeName,
|
||||
const AttributeValue& value);
|
||||
virtual status_t AddAttribute_type(uint16 attributeName,
|
||||
@@ -1461,10 +1463,12 @@ public:
|
||||
virtual status_t AddAttribute_start_scope(
|
||||
uint16 attributeName,
|
||||
const AttributeValue& value);
|
||||
virtual status_t AddAttribute_external(
|
||||
uint16 attributeName,
|
||||
const AttributeValue& value);
|
||||
|
||||
// TODO:
|
||||
// DW_AT_endianity
|
||||
// DW_AT_external
|
||||
// DW_AT_segment
|
||||
|
||||
private:
|
||||
@@ -1474,6 +1478,7 @@ private:
|
||||
DebugInfoEntry* fSpecification;
|
||||
DIEVariable* fAbstractOrigin;
|
||||
uint64 fStartScope;
|
||||
bool fIsExternal;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user