From 9944a73444f89064096bdb42fe40351803c01bad Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 15 Jan 2019 18:42:15 +0100 Subject: [PATCH] Store failure reason strings in Worker. --- capture/src/capture.cpp | 12 +----------- server/TracyView.cpp | 10 +--------- server/TracyWorker.cpp | 10 ++++++++++ server/TracyWorker.hpp | 5 ++++- 4 files changed, 16 insertions(+), 21 deletions(-) diff --git a/capture/src/capture.cpp b/capture/src/capture.cpp index a2794bc4..797ddcb0 100644 --- a/capture/src/capture.cpp +++ b/capture/src/capture.cpp @@ -182,17 +182,7 @@ int main( int argc, char** argv ) const auto& failure = worker.GetFailureType(); if( failure != tracy::Worker::Failure::None ) { - printf( "\n\033[31;1mInstrumentation failure: " ); - switch( failure ) - { - case tracy::Worker::Failure::ZoneStack: - printf( "Invalid order of zone begin and end events." ); - break; - default: - printf( "" ); - break; - } - printf( "\033[0m" ); + printf( "\n\033[31;1mInstrumentation failure: %s\033[0m", tracy::Worker::GetFailureString( failure ) ); } printf( "\nFrames: %" PRIu64 "\nTime span: %s\nZones: %s\nSaving trace...", worker.GetFrameCount( *worker.GetFramesBase() ), TimeToString( worker.GetLastTime() - worker.GetTimeBegin() ), RealToString( worker.GetZoneCount(), true ) ); diff --git a/server/TracyView.cpp b/server/TracyView.cpp index 4db15e53..0acf64c9 100644 --- a/server/TracyView.cpp +++ b/server/TracyView.cpp @@ -469,15 +469,7 @@ bool View::Draw() ImGui::Text( "Profiling session terminated due to improper instrumentation.\nPlease correct your program and try again." ); ImGui::Text( "Reason:" ); ImGui::SameLine(); - switch( failure ) - { - case Worker::Failure::ZoneStack: - ImGui::Text( "Invalid order of zone begin and end events." ); - break; - default: - assert( false ); - break; - } + ImGui::Text( "%s", Worker::GetFailureString( failure ) ); ImGui::Separator(); if( srcloc.name.active ) { diff --git a/server/TracyWorker.cpp b/server/TracyWorker.cpp index 76acf460..c9aa1691 100644 --- a/server/TracyWorker.cpp +++ b/server/TracyWorker.cpp @@ -3645,4 +3645,14 @@ void Worker::WriteTimeline( FileWrite& f, const Vector& vec, int64_t& } } +static const char* s_failureReasons[] = { + "", + "Invalid order of zone begin and end events." +}; + +const char* Worker::GetFailureString( Worker::Failure failure ) +{ + return s_failureReasons[(int)failure]; +} + } diff --git a/server/TracyWorker.hpp b/server/TracyWorker.hpp index f545434b..11c92df9 100644 --- a/server/TracyWorker.hpp +++ b/server/TracyWorker.hpp @@ -180,7 +180,9 @@ public: enum class Failure { None, - ZoneStack + ZoneStack, + + NUM_FAILURES }; Worker( const char* addr ); @@ -284,6 +286,7 @@ public: void ClearFailure() { m_failure = Failure::None; } Failure GetFailureType() const { return m_failure; } const FailureData& GetFailureData() const { return m_failureData; } + static const char* GetFailureString( Failure failure ); private: void Exec();