diff --git a/server/TracyEvent.hpp b/server/TracyEvent.hpp index 9a9daf2a..c719ccf9 100644 --- a/server/TracyEvent.hpp +++ b/server/TracyEvent.hpp @@ -329,6 +329,8 @@ struct CallstackFrame : public CallstackFrameBasic struct SymbolData : public CallstackFrameBasic { StringIdx imageName; + StringIdx callFile; + uint32_t callLine; }; enum { CallstackFrameBasicSize = sizeof( CallstackFrameBasic ) }; diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 5cd927dd..e75f6554 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -1643,10 +1643,10 @@ Worker::Worker( FileRead& f, EventType::Type eventMask, bool bgTasks ) for( uint64_t i=0; isize - m_pendingCallstackSubframes; const auto name = StringIdx( nit->second.idx ); + const auto file = StringIdx( fit->second.idx ); m_callstackFrameStaging->data[idx].name = name; - m_callstackFrameStaging->data[idx].file = StringIdx( fit->second.idx ); + m_callstackFrameStaging->data[idx].file = file; m_callstackFrameStaging->data[idx].line = ev.line; m_callstackFrameStaging->data[idx].symAddr = ev.symAddr; 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 } ); + m_pendingSymbols.emplace( ev.symAddr, SymbolPending { name, m_callstackFrameStaging->imageName, file, ev.line } ); Query( ServerQuerySymbol, ev.symAddr ); } @@ -4859,6 +4860,8 @@ void Worker::ProcessSymbolInformation( const QueueSymbolInformation& ev ) sd.file = StringIdx( fit->second.idx ); sd.line = ev.line; sd.imageName = it->second.imageName; + sd.callFile = it->second.file; + sd.callLine = it->second.line; m_data.symbolMap.emplace( ev.symAddr, std::move( sd ) ); m_pendingSymbols.erase( it ); diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index 1688ae9b..2062fc57 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -179,6 +179,8 @@ private: { StringIdx name; StringIdx imageName; + StringIdx file; + uint32_t line; }; struct DataBlock