mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-10 02:31:48 +00:00
Implement search for symbol base from address.
This commit is contained in:
parent
4c381e13e9
commit
992f4c8c2d
@ -2279,6 +2279,14 @@ const char* Worker::GetSymbolCode( uint64_t sym, uint32_t& len ) const
|
||||
return it->second.data;
|
||||
}
|
||||
|
||||
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; } );
|
||||
if( it == m_data.symbolLoc.end() || address < it->addr ) return 0;
|
||||
offset = address - it->addr;
|
||||
return it->addr;
|
||||
}
|
||||
|
||||
int64_t Worker::GetZoneEnd( const ZoneEvent& ev )
|
||||
{
|
||||
auto ptr = &ev;
|
||||
|
@ -432,6 +432,7 @@ public:
|
||||
uint64_t GetCanonicalPointer( const CallstackFrameId& id ) const;
|
||||
const SymbolData* GetSymbolData( uint64_t sym ) const;
|
||||
const char* GetSymbolCode( uint64_t sym, uint32_t& len ) const;
|
||||
uint64_t GetSymbolForAddress( uint64_t address, uint32_t& offset ) const;
|
||||
|
||||
#ifndef TRACY_NO_STATISTICS
|
||||
const VarArray<CallstackFrameId>& GetParentCallstack( uint32_t idx ) const { return *m_data.parentCallstackPayload[idx]; }
|
||||
|
Loading…
Reference in New Issue
Block a user