1
0
mirror of https://github.com/wolfpld/tracy.git synced 2025-03-20 07:40:02 +08:00

Send single string for symbol information.

This commit is contained in:
Bartosz Taudul 2020-07-26 00:31:54 +02:00
parent 14b180cd16
commit 06ca4e2d16
3 changed files with 6 additions and 8 deletions

View File

@ -2873,11 +2873,10 @@ void Profiler::HandleSymbolQuery( uint64_t symbol )
#ifdef TRACY_HAS_CALLSTACK
const auto sym = DecodeSymbolAddress( symbol );
SendString( uint64_t( sym.file ), sym.file, QueueType::CustomStringData );
SendSingleString( sym.file );
QueueItem item;
MemWrite( &item.hdr.type, QueueType::SymbolInformation );
MemWrite( &item.symbolInformation.file, uint64_t( sym.file ) );
MemWrite( &item.symbolInformation.line, sym.line );
MemWrite( &item.symbolInformation.symAddr, symbol );

View File

@ -393,7 +393,6 @@ struct QueueCallstackFrame
struct QueueSymbolInformation
{
uint64_t file;
uint32_t line;
uint64_t symAddr;
};

View File

@ -5503,12 +5503,13 @@ void Worker::ProcessSymbolInformation( const QueueSymbolInformation& ev )
auto it = m_pendingSymbols.find( ev.symAddr );
assert( it != m_pendingSymbols.end() );
auto fit = m_pendingCustomStrings.find( ev.file );
assert( fit != m_pendingCustomStrings.end() );
assert( m_pendingSingleString.ptr != nullptr );
const auto idx = m_pendingSingleString.idx;
m_pendingSingleString.ptr = nullptr;
SymbolData sd;
sd.name = it->second.name;
sd.file = StringIdx( fit->second.idx );
sd.file = StringIdx( idx );
sd.line = ev.line;
sd.imageName = it->second.imageName;
sd.callFile = it->second.file;
@ -5535,12 +5536,11 @@ void Worker::ProcessSymbolInformation( const QueueSymbolInformation& ev )
m_data.symbolLocInline.push_back( ev.symAddr );
}
StringRef ref( StringRef::Idx, fit->second.idx );
StringRef ref( StringRef::Idx, idx );
auto cit = m_checkedFileStrings.find( ref );
if( cit == m_checkedFileStrings.end() ) CacheSource( ref );
m_pendingSymbols.erase( it );
m_pendingCustomStrings.erase( fit );
}
void Worker::ProcessCodeInformation( const QueueCodeInformation& ev )