mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Perform symbol information queries.
This commit is contained in:
@@ -2301,6 +2301,9 @@ bool Profiler::HandleServerQuery()
|
||||
case ServerQueryParameter:
|
||||
HandleParameter( ptr );
|
||||
break;
|
||||
case ServerQuerySymbol:
|
||||
HandleSymbolQuery( ptr );
|
||||
break;
|
||||
default:
|
||||
assert( false );
|
||||
break;
|
||||
@@ -2677,6 +2680,28 @@ void Profiler::HandleParameter( uint64_t payload )
|
||||
m_paramCallback( idx, val );
|
||||
}
|
||||
|
||||
void Profiler::HandleSymbolQuery( uint64_t symbol )
|
||||
{
|
||||
#ifdef TRACY_HAS_CALLSTACK
|
||||
const auto sym = DecodeSymbolAddress( symbol );
|
||||
|
||||
SendString( uint64_t( sym.file ), sym.file, QueueType::CustomStringData );
|
||||
SendString( uint64_t( sym.name ), sym.name, QueueType::CustomStringData );
|
||||
|
||||
QueueItem item;
|
||||
MemWrite( &item.hdr.type, QueueType::SymbolInformation );
|
||||
MemWrite( &item.callstackFrame.file, uint64_t( sym.file ) );
|
||||
MemWrite( &item.callstackFrame.name, uint64_t( sym.name ) );
|
||||
MemWrite( &item.callstackFrame.line, sym.line );
|
||||
MemWrite( &item.callstackFrame.symAddr, symbol );
|
||||
|
||||
AppendData( &item, QueueDataSize[(int)QueueType::SymbolInformation] );
|
||||
|
||||
tracy_free( (void*)sym.file );
|
||||
tracy_free( (void*)sym.name );
|
||||
#endif
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -557,6 +557,7 @@ private:
|
||||
bool HandleServerQuery();
|
||||
void HandleDisconnect();
|
||||
void HandleParameter( uint64_t payload );
|
||||
void HandleSymbolQuery( uint64_t symbol );
|
||||
|
||||
void CalibrateTimer();
|
||||
void CalibrateDelay();
|
||||
|
||||
Reference in New Issue
Block a user