Add offset-less GetSymbolForAddress().

This commit is contained in:
Bartosz Taudul
2020-04-08 16:55:49 +02:00
parent a34cfacb5c
commit 02e1a7669c
3 changed files with 12 additions and 8 deletions

View File

@@ -2397,6 +2397,13 @@ const char* Worker::GetSymbolCode( uint64_t sym, uint32_t& len ) const
return it->second.data;
}
uint64_t Worker::GetSymbolForAddress( uint64_t address ) const
{
auto it = std::lower_bound( m_data.symbolLoc.begin(), m_data.symbolLoc.end(), address, [] ( const auto& l, const auto& r ) { return l.addr + l.len < r; } );
if( it == m_data.symbolLoc.end() || address < it->addr ) return 0;
return it->addr;
}
uint64_t Worker::GetSymbolForAddress( uint64_t address, uint32_t& offset ) const
{
auto it = std::lower_bound( m_data.symbolLoc.begin(), m_data.symbolLoc.end(), address, [] ( const auto& l, const auto& r ) { return l.addr + l.len < r; } );