diff --git a/server/TracySourceView.cpp b/server/TracySourceView.cpp index 90dd22c5..4fb68490 100644 --- a/server/TracySourceView.cpp +++ b/server/TracySourceView.cpp @@ -12,6 +12,7 @@ namespace tracy SourceView::SourceView( ImFont* font ) : m_font( font ) , m_file( nullptr ) + , m_symAddr( 0 ) , m_data( nullptr ) , m_dataSize( 0 ) , m_targetLine( 0 ) @@ -24,10 +25,11 @@ SourceView::~SourceView() delete[] m_data; } -void SourceView::Open( const char* fileName, int line ) +void SourceView::Open( const char* fileName, int line, uint64_t symAddr ) { m_targetLine = line; m_selectedLine = line; + m_symAddr = symAddr; if( m_file != fileName ) { diff --git a/server/TracySourceView.hpp b/server/TracySourceView.hpp index 02ff4b89..e2b090b1 100644 --- a/server/TracySourceView.hpp +++ b/server/TracySourceView.hpp @@ -17,7 +17,7 @@ public: SourceView( ImFont* font ); ~SourceView(); - void Open( const char* fileName, int line ); + void Open( const char* fileName, int line, uint64_t symAddr ); void Render(); private: @@ -25,6 +25,7 @@ private: ImFont* m_font; const char* m_file; + uint64_t m_symAddr; char* m_data; size_t m_dataSize; int m_targetLine; diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 114b8028..cab825a2 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -193,10 +193,10 @@ void View::InitTextEditor( ImFont* font ) m_sourceViewFile = nullptr; } -void View::SetTextEditorFile( const char* fileName, int line ) +void View::SetTextEditorFile( const char* fileName, int line, uint64_t symAddr ) { m_sourceViewFile = fileName; - m_sourceView->Open( fileName, line ); + m_sourceView->Open( fileName, line, symAddr ); } const char* View::ShortenNamespace( const char* name ) const @@ -3596,7 +3596,7 @@ int View::DrawGhostLevel( const Vector& vec, bool hover, double pxns, { if( line != 0 ) { - SetTextEditorFile( file, line ); + SetTextEditorFile( file, line, frame->data[i].symAddr ); } } else if( !m_zoomAnim.active && ImGui::IsMouseClicked( 2 ) ) @@ -6103,7 +6103,7 @@ void DrawZoneTrace( T zone, const std::vector& trace, const Worker& worker, B { if( frame->line != 0 && SourceFileValid( fileName, worker.GetCaptureTime() ) ) { - view.SetTextEditorFile( fileName, frame->line ); + view.SetTextEditorFile( fileName, frame->line, 0 ); } else { @@ -6165,7 +6165,7 @@ void DrawZoneTrace( T zone, const std::vector& trace, const Worker& worker, B { if( frame->line != 0 && SourceFileValid( fileName, worker.GetCaptureTime() ) ) { - view.SetTextEditorFile( fileName, frame->line ); + view.SetTextEditorFile( fileName, frame->line, 0 ); } else { @@ -6363,7 +6363,7 @@ void View::DrawZoneInfoWindow() if( ImGui::Button( "Source" ) ) #endif { - SetTextEditorFile( fileName, srcloc.line ); + SetTextEditorFile( fileName, srcloc.line, 0 ); } if( hilite ) { @@ -6894,7 +6894,7 @@ void View::DrawZoneInfoWindow() { if( SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( fileName, srcloc.line ); + SetTextEditorFile( fileName, srcloc.line, 0 ); } else { @@ -7340,7 +7340,7 @@ void View::DrawGpuInfoWindow() if( ImGui::Button( "Source" ) ) #endif { - SetTextEditorFile( fileName, srcloc.line ); + SetTextEditorFile( fileName, srcloc.line, 0 ); } if( hilite ) { @@ -7451,7 +7451,7 @@ void View::DrawGpuInfoWindow() { if( SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( fileName, srcloc.line ); + SetTextEditorFile( fileName, srcloc.line, 0 ); } else { @@ -8079,7 +8079,7 @@ void View::DrawOptions() { if( SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( fileName, sl.line ); + SetTextEditorFile( fileName, sl.line, 0 ); } else { @@ -8153,7 +8153,7 @@ void View::DrawOptions() { if( SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( fileName, sl.line ); + SetTextEditorFile( fileName, sl.line, 0 ); } else { @@ -8227,7 +8227,7 @@ void View::DrawOptions() { if( SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( fileName, sl.line ); + SetTextEditorFile( fileName, sl.line, 0 ); } else { @@ -8854,7 +8854,7 @@ void View::DrawFindZone() { if( SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( fileName, srcloc.line ); + SetTextEditorFile( fileName, srcloc.line, 0 ); } else { @@ -11560,7 +11560,7 @@ void View::DrawStatistics() { if( SourceFileValid( file, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( file, srcloc.line ); + SetTextEditorFile( file, srcloc.line, 0 ); } else { @@ -11779,7 +11779,7 @@ void View::DrawStatistics() { if( SourceFileValid( file, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( file, line ); + SetTextEditorFile( file, line, v->first ); } else { @@ -12058,7 +12058,7 @@ void View::DrawCallstackWindow() const auto symtxt = m_worker.GetString( sym->file ); if( SourceFileValid( symtxt, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( symtxt, sym->line ); + SetTextEditorFile( symtxt, sym->line, frame.symAddr ); } else { @@ -12074,7 +12074,7 @@ void View::DrawCallstackWindow() { if( SourceFileValid( txt, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( txt, frame.line ); + SetTextEditorFile( txt, frame.line, frame.symAddr ); } else { @@ -13181,7 +13181,7 @@ void View::DrawLockInfoWindow() { if( SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( fileName, srcloc.line ); + SetTextEditorFile( fileName, srcloc.line, 0 ); } else { @@ -13790,7 +13790,7 @@ void View::DrawSampleParents() { if( SourceFileValid( callFile, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( callFile, symbol->callLine ); + SetTextEditorFile( callFile, symbol->callLine, m_sampleParents.symAddr ); } } TextDisabledUnformatted( "Entry point:" ); @@ -13808,7 +13808,7 @@ void View::DrawSampleParents() { if( SourceFileValid( file, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( file, symbol->line ); + SetTextEditorFile( file, symbol->line, m_sampleParents.symAddr ); } } ImGui::SameLine(); @@ -14033,7 +14033,7 @@ void View::DrawSampleParents() const auto symtxt = m_worker.GetString( sym->file ); if( SourceFileValid( symtxt, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( symtxt, sym->line ); + SetTextEditorFile( symtxt, sym->line, 0 ); } else { @@ -14049,7 +14049,7 @@ void View::DrawSampleParents() { if( SourceFileValid( txt, m_worker.GetCaptureTime() ) ) { - SetTextEditorFile( txt, frame.line ); + SetTextEditorFile( txt, frame.line, 0 ); } else { @@ -15058,7 +15058,7 @@ void View::DrawFrameTreeLevel( const unordered_flat_map