This is an archive of the discontinued LLVM Phabricator instance.

Make sure we use symbol flags to detect thumbness.
AbandonedPublic

Authored by sas on Nov 9 2015, 12:18 PM.

Details

Summary

This was GetAddressClass' behavior before. This is required when
debugging binaries that don't have mapping symbols ($a, $t, etc). These
binaries will only have the lower bit of the address set in the symbol
table.

Diff Detail

Event Timeline

sas updated this revision to Diff 39735.Nov 9 2015, 12:18 PM
sas retitled this revision from to Make sure we use symbol flags to detect thumbness..
sas updated this object.
sas added reviewers: tberghammer, clayborg.
sas added a subscriber: lldb-commits.
clayborg requested changes to this revision.Nov 9 2015, 1:04 PM
clayborg edited edge metadata.

You should populate the m_address_class_map in ObjectFileELF::ParseSymbols() as this is where the m_address_class_map is already being populated. For ARM symbols, just check the flags and add an appropriate entry. Then this code doesn't need to exist here, but be moved into ObjectFileELF::ParseSymbols().

This revision now requires changes to proceed.Nov 9 2015, 1:04 PM

See Inlined comment.

source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
975–997

Remove this and move it to ObjectFileELF::ParseSymbols()

tberghammer requested changes to this revision.Nov 10 2015, 2:09 AM
tberghammer edited edge metadata.
tberghammer added inline comments.
source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
2191–2213

The function you are looking for is already implemented here (in the way Greg suggested). If it isn't working in your case then you should try to figure out why it isn't working in the way it is intended.

sas added a comment.Nov 10 2015, 3:21 PM

Ok I'll integrate that with the code that uses m_address_class_map.

sas abandoned this revision.Jan 11 2016, 5:00 PM

Not required anymore.