mirror of
https://github.com/wolfpld/tracy.git
synced 2024-11-10 02:31:48 +00:00
Symbol length transfer.
This commit is contained in:
parent
d47e6819a8
commit
c999a74d34
@ -2281,6 +2281,14 @@ void Profiler::SendCallstackFrame( uint64_t ptr )
|
|||||||
MemWrite( &item.callstackFrame.file, (uint64_t)frame.file );
|
MemWrite( &item.callstackFrame.file, (uint64_t)frame.file );
|
||||||
MemWrite( &item.callstackFrame.line, frame.line );
|
MemWrite( &item.callstackFrame.line, frame.line );
|
||||||
MemWrite( &item.callstackFrame.symAddr, frame.symAddr );
|
MemWrite( &item.callstackFrame.symAddr, frame.symAddr );
|
||||||
|
if( frame.symLen > ( 1 << 24 ) )
|
||||||
|
{
|
||||||
|
memset( item.callstackFrame.symLen, 0, 3 );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
memcpy( item.callstackFrame.symLen, &frame.symLen, 3 );
|
||||||
|
}
|
||||||
|
|
||||||
AppendData( &item, QueueDataSize[(int)QueueType::CallstackFrame] );
|
AppendData( &item, QueueDataSize[(int)QueueType::CallstackFrame] );
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ namespace tracy
|
|||||||
|
|
||||||
constexpr unsigned Lz4CompressBound( unsigned isize ) { return isize + ( isize / 255 ) + 16; }
|
constexpr unsigned Lz4CompressBound( unsigned isize ) { return isize + ( isize / 255 ) + 16; }
|
||||||
|
|
||||||
enum : uint32_t { ProtocolVersion = 28 };
|
enum : uint32_t { ProtocolVersion = 29 };
|
||||||
enum : uint32_t { BroadcastVersion = 1 };
|
enum : uint32_t { BroadcastVersion = 1 };
|
||||||
|
|
||||||
using lz4sz_t = uint32_t;
|
using lz4sz_t = uint32_t;
|
||||||
|
@ -319,6 +319,7 @@ struct QueueCallstackFrame
|
|||||||
uint64_t file;
|
uint64_t file;
|
||||||
uint32_t line;
|
uint32_t line;
|
||||||
uint64_t symAddr;
|
uint64_t symAddr;
|
||||||
|
char symLen[3];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct QueueSymbolInformation
|
struct QueueSymbolInformation
|
||||||
|
@ -332,6 +332,7 @@ struct SymbolData : public CallstackFrameBasic
|
|||||||
StringIdx callFile;
|
StringIdx callFile;
|
||||||
uint32_t callLine;
|
uint32_t callLine;
|
||||||
uint8_t isInline;
|
uint8_t isInline;
|
||||||
|
Int24 size;
|
||||||
};
|
};
|
||||||
|
|
||||||
enum { CallstackFrameBasicSize = sizeof( CallstackFrameBasic ) };
|
enum { CallstackFrameBasicSize = sizeof( CallstackFrameBasic ) };
|
||||||
|
@ -5121,7 +5121,9 @@ void Worker::ProcessCallstackFrame( const QueueCallstackFrame& ev )
|
|||||||
|
|
||||||
if( ev.symAddr != 0 && m_data.symbolMap.find( ev.symAddr ) == m_data.symbolMap.end() && m_pendingSymbols.find( ev.symAddr ) == m_pendingSymbols.end() )
|
if( ev.symAddr != 0 && m_data.symbolMap.find( ev.symAddr ) == m_data.symbolMap.end() && m_pendingSymbols.find( ev.symAddr ) == m_pendingSymbols.end() )
|
||||||
{
|
{
|
||||||
m_pendingSymbols.emplace( ev.symAddr, SymbolPending { name, m_callstackFrameStaging->imageName, file, ev.line, idx < m_callstackFrameStaging->size - 1 } );
|
uint32_t size = 0;
|
||||||
|
memcpy( &size, ev.symLen, 3 );
|
||||||
|
m_pendingSymbols.emplace( ev.symAddr, SymbolPending { name, m_callstackFrameStaging->imageName, file, ev.line, size, idx < m_callstackFrameStaging->size - 1 } );
|
||||||
Query( ServerQuerySymbol, ev.symAddr );
|
Query( ServerQuerySymbol, ev.symAddr );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5176,6 +5178,7 @@ void Worker::ProcessSymbolInformation( const QueueSymbolInformation& ev )
|
|||||||
sd.callFile = it->second.file;
|
sd.callFile = it->second.file;
|
||||||
sd.callLine = it->second.line;
|
sd.callLine = it->second.line;
|
||||||
sd.isInline = it->second.isInline;
|
sd.isInline = it->second.isInline;
|
||||||
|
sd.size.SetVal( it->second.size );
|
||||||
m_data.symbolMap.emplace( ev.symAddr, std::move( sd ) );
|
m_data.symbolMap.emplace( ev.symAddr, std::move( sd ) );
|
||||||
|
|
||||||
m_pendingSymbols.erase( it );
|
m_pendingSymbols.erase( it );
|
||||||
|
@ -179,6 +179,7 @@ private:
|
|||||||
StringIdx imageName;
|
StringIdx imageName;
|
||||||
StringIdx file;
|
StringIdx file;
|
||||||
uint32_t line;
|
uint32_t line;
|
||||||
|
uint32_t size;
|
||||||
bool isInline;
|
bool isInline;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user