Symbol length no longer has to be packed.

This commit is contained in:
Bartosz Taudul 2020-07-26 00:43:24 +02:00
parent 88685440b6
commit 309a151610
3 changed files with 3 additions and 12 deletions

View File

@ -2412,14 +2412,7 @@ void Profiler::SendCallstackFrame( uint64_t ptr )
MemWrite( &item.callstackFrame.file, (uint64_t)frame.file );
MemWrite( &item.callstackFrame.line, frame.line );
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 );
}
MemWrite( &item.callstackFrame.symLen, frame.symLen );
AppendData( &item, QueueDataSize[(int)QueueType::CallstackFrame] );

View File

@ -386,7 +386,7 @@ struct QueueCallstackFrame
uint64_t file;
uint32_t line;
uint64_t symAddr;
char symLen[3];
uint32_t symLen;
};
struct QueueSymbolInformation

View File

@ -5455,9 +5455,7 @@ 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() )
{
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 } );
m_pendingSymbols.emplace( ev.symAddr, SymbolPending { name, m_callstackFrameStaging->imageName, file, ev.line, ev.symLen, idx < m_callstackFrameStaging->size - 1 } );
Query( ServerQuerySymbol, ev.symAddr );
}