From 7e9f66c98730f0f273ea33fc080e8c52c942b7fd Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Wed, 13 May 2026 00:33:43 +0200 Subject: [PATCH] Prefer switching to source/line within symbol in links from markdown. --- profiler/src/profiler/TracyMarkdown.cpp | 2 +- profiler/src/profiler/TracyView.cpp | 13 +++++++++++++ profiler/src/profiler/TracyView.hpp | 1 + 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/profiler/src/profiler/TracyMarkdown.cpp b/profiler/src/profiler/TracyMarkdown.cpp index 677acdd5..80426513 100644 --- a/profiler/src/profiler/TracyMarkdown.cpp +++ b/profiler/src/profiler/TracyMarkdown.cpp @@ -438,7 +438,7 @@ private: if( idx.Active() ) { auto str = m_worker->GetString( idx ); - m_view->ViewSource( str, line ); + m_view->ViewSymbolSource( str, line ); } } else if( isAnchor ) diff --git a/profiler/src/profiler/TracyView.cpp b/profiler/src/profiler/TracyView.cpp index 31c64a1c..44969ceb 100644 --- a/profiler/src/profiler/TracyView.cpp +++ b/profiler/src/profiler/TracyView.cpp @@ -228,6 +228,19 @@ void View::ViewSourceCheckKeyMod( const char* fileName, int line, const char* fu } } +void View::ViewSymbolSource( const char* fileName, int line ) +{ + assert( fileName ); + if( m_sourceView->SwitchTo( fileName, line, m_worker, *this ) ) + { + m_sourceViewFile = fileName; + } + else + { + ViewSource( fileName, line ); + } +} + void View::ViewSymbol( const char* fileName, int line, uint64_t baseAddr, uint64_t symAddr ) { assert( fileName || symAddr ); diff --git a/profiler/src/profiler/TracyView.hpp b/profiler/src/profiler/TracyView.hpp index b6b5a9cb..cc8d435e 100644 --- a/profiler/src/profiler/TracyView.hpp +++ b/profiler/src/profiler/TracyView.hpp @@ -135,6 +135,7 @@ public: void ViewSource( const char* fileName, int line ); void ViewSource( const char* fileName, int line, const char* functionName ); void ViewSourceCheckKeyMod( const char* fileName, int line, const char* functionName ); + void ViewSymbolSource( const char* fileName, int line ); void ViewSymbol( const char* fileName, int line, uint64_t baseAddr, uint64_t symAddr ); bool ViewDispatch( const char* fileName, int line, uint64_t symAddr );