diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 450dee87..eee66164 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -199,11 +199,28 @@ void View::SetTextEditorFile( const char* fileName, int line, uint64_t baseAddr, m_sourceView->Open( fileName, line, baseAddr, symAddr, m_worker ); } -void View::SetTextEditorFile( const char* fileName, int line, uint64_t symAddr ) +bool View::SetTextEditorFile( const char* fileName, int line, uint64_t symAddr ) { + if( line == 0 ) + { + fileName = nullptr; + } + else + { + if( !SourceFileValid( fileName, m_worker.GetCaptureTime() ) ) + { + fileName = nullptr; + line = 0; + } + } if( symAddr == 0 ) { - SetTextEditorFile( fileName, line, 0, 0 ); + if( line != 0 ) + { + SetTextEditorFile( fileName, line, 0, 0 ); + return true; + } + return false; } else { @@ -222,7 +239,12 @@ void View::SetTextEditorFile( const char* fileName, int line, uint64_t symAddr ) if( pit != symMap.end() ) baseAddr = parentAddr; } } - SetTextEditorFile( fileName, line, baseAddr, symAddr ); + if( symlen != 0 || line != 0 ) + { + SetTextEditorFile( fileName, line, baseAddr, symAddr ); + return true; + } + return false; } } diff --git a/server/TracyView.hpp b/server/TracyView.hpp index b7ef2dc2..d1fbe4bf 100644 --- a/server/TracyView.hpp +++ b/server/TracyView.hpp @@ -81,7 +81,7 @@ public: void NotifyRootWindowSize( float w, float h ) { m_rootWidth = w; m_rootHeight = h; } void SetTextEditorFile( const char* fileName, int line, uint64_t baseAddr, uint64_t symAddr ); - void SetTextEditorFile( const char* fileName, int line, uint64_t symAddr ); + bool SetTextEditorFile( const char* fileName, int line, uint64_t symAddr ); bool ReconnectRequested() const { return m_reconnectRequested; } std::string GetAddress() const { return m_worker.GetAddr(); }