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 );