From 3135191e901387041fd2b58cb15c9d35ca85b4d7 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 29 Sep 2020 18:39:48 +0200 Subject: [PATCH] Wait for failure callstack to be received. --- server/TracyWorker.cpp | 12 ++++++++++++ server/TracyWorker.hpp | 1 + 2 files changed, 13 insertions(+) diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index fba88ac7..adbd2a15 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -2869,6 +2869,17 @@ bool Worker::IsThreadStringRetrieved( uint64_t id ) return strcmp( name, "???" ) != 0; } +bool Worker::IsCallstackRetrieved( uint32_t callstack ) +{ + auto& cs = GetCallstack( callstack ); + for( auto& v : cs ) + { + auto frameData = GetCallstackFrame( v ); + if( !frameData ) return false; + } + return true; +} + bool Worker::IsSourceLocationRetrieved( int16_t srcloc ) { auto& sl = GetSourceLocation( srcloc ); @@ -2881,6 +2892,7 @@ bool Worker::HasAllFailureData() { if( m_failureData.thread != 0 && !IsThreadStringRetrieved( m_failureData.thread ) ) return false; if( m_failureData.srcloc != 0 && !IsSourceLocationRetrieved( m_failureData.srcloc ) ) return false; + if( m_failureData.callstack != 0 && !IsCallstackRetrieved( m_failureData.callstack ) ) return false; return true; } diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index 45ddb2ed..762e4ba5 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -755,6 +755,7 @@ private: bool IsThreadStringRetrieved( uint64_t id ); bool IsSourceLocationRetrieved( int16_t srcloc ); + bool IsCallstackRetrieved( uint32_t callstack ); bool HasAllFailureData(); void HandleFailure( const char* ptr, const char* end ); void DispatchFailure( const QueueItem& ev, const char*& ptr );