From 6b58f7d8d0b69e4bf87d3ac6b45f855e7f48292d Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Wed, 19 Aug 2026 22:14:33 +0200 Subject: [PATCH] Report system tracing setup failures. SysTraceStart previously reported success even when no perf events could be opened, leaving a worker thread running over no buffers and an empty CPU section without explanation; it now fails in that case. Also log when /proc/kallsyms cannot be read, which otherwise silently results in ??? kernel stack frames. --- public/client/TracyCallstack.cpp | 6 +++++- public/client/TracySysTrace.cpp | 8 ++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/public/client/TracyCallstack.cpp b/public/client/TracyCallstack.cpp index 402f4157..9944a861 100644 --- a/public/client/TracyCallstack.cpp +++ b/public/client/TracyCallstack.cpp @@ -1167,7 +1167,11 @@ size_t s_kernelSymCnt; static void InitKernelSymbols() { FILE* f = fopen( "/proc/kallsyms", "rb" ); - if( !f ) return; + if( !f ) + { + TracyDebug( "Failed to read /proc/kallsyms, kernel symbols will be unavailable." ); + return; + } tracy::FastVector tmpSym( 512 * 1024 ); size_t linelen = 16 * 1024; // linelen must be big enough to prevent reallocs in getline() auto linebuf = (char*)tracy_malloc( linelen ); diff --git a/public/client/TracySysTrace.cpp b/public/client/TracySysTrace.cpp index 5ad19b0e..1711b08b 100644 --- a/public/client/TracySysTrace.cpp +++ b/public/client/TracySysTrace.cpp @@ -1112,6 +1112,14 @@ bool SysTraceStart( int64_t& samplingPeriod ) tracy_free( iter ); + if( s_numBuffers == 0 ) + { + tracy_free( s_ring ); + s_ring = nullptr; + TracyDebug( "Failed to setup any system tracing events, system tracing disabled." ); + return false; + } + traceActive.store( true, std::memory_order_relaxed ); return true; }