mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-10 02:31:48 +00:00
Accessor for getting source file, line from address.
This commit is contained in:
parent
2dd5912fee
commit
d204742bb8
@ -38,6 +38,18 @@ static tracy_force_inline CallstackFrameId PackPointer( uint64_t ptr )
|
||||
return id;
|
||||
}
|
||||
|
||||
static tracy_force_inline uint64_t PackFileLine( uint32_t fileIdx, uint32_t line )
|
||||
{
|
||||
return ( uint64_t( fileIdx ) << 32 ) | line;
|
||||
}
|
||||
|
||||
static tracy_force_inline uint32_t UnpackFileLine( uint64_t packed, uint32_t& line )
|
||||
{
|
||||
line = packed & 0xFFFFFFFF;
|
||||
return packed >> 32;
|
||||
}
|
||||
|
||||
|
||||
static const uint8_t FileHeader[8] { 't', 'r', 'a', 'c', 'y', Version::Major, Version::Minor, Version::Patch };
|
||||
enum { FileHeaderMagic = 5 };
|
||||
static const int CurrentVersion = FileVersion( Version::Major, Version::Minor, Version::Patch );
|
||||
@ -2312,6 +2324,21 @@ uint64_t Worker::GetSymbolForAddress( uint64_t address, uint32_t& offset ) const
|
||||
return it->addr;
|
||||
}
|
||||
|
||||
StringIdx Worker::GetLocationForAddress( uint64_t address, uint32_t& line ) const
|
||||
{
|
||||
auto it = m_data.codeAddressToLocation.find( address );
|
||||
if( it == m_data.codeAddressToLocation.end() )
|
||||
{
|
||||
line = 0;
|
||||
return StringIdx();
|
||||
}
|
||||
else
|
||||
{
|
||||
const auto idx = UnpackFileLine( it->second, line );
|
||||
return StringIdx( idx );
|
||||
}
|
||||
}
|
||||
|
||||
int64_t Worker::GetZoneEnd( const ZoneEvent& ev )
|
||||
{
|
||||
auto ptr = &ev;
|
||||
@ -5504,11 +5531,6 @@ void Worker::ProcessSymbolInformation( const QueueSymbolInformation& ev )
|
||||
m_pendingCustomStrings.erase( fit );
|
||||
}
|
||||
|
||||
tracy_force_inline uint64_t PackFileLine( uint32_t fileIdx, uint32_t line )
|
||||
{
|
||||
return ( uint64_t( fileIdx ) << 32 ) | line;
|
||||
}
|
||||
|
||||
void Worker::ProcessCodeInformation( const QueueCodeInformation& ev )
|
||||
{
|
||||
assert( m_pendingCodeInformation > 0 );
|
||||
|
@ -436,6 +436,7 @@ public:
|
||||
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;
|
||||
StringIdx GetLocationForAddress( uint64_t address, uint32_t& line ) 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