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:
Rene Gollent
2014-11-08 10:48:55 -05:00
parent 30e8ed9f4f
commit d100f5b98d
2 changed files with 15 additions and 1 deletions
@@ -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
+6 -1
View File
@@ -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;
};