From 842420439df7039947e4e85040369922bd84a806 Mon Sep 17 00:00:00 2001 From: Marcos Slomp Date: Thu, 2 Apr 2026 15:37:16 -0700 Subject: [PATCH] fix LogString wire in the DequeueSerial path (#1328) --- public/client/TracyProfiler.cpp | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/public/client/TracyProfiler.cpp b/public/client/TracyProfiler.cpp index 3d7b13ab..08f86859 100644 --- a/public/client/TracyProfiler.cpp +++ b/public/client/TracyProfiler.cpp @@ -3071,21 +3071,39 @@ Profiler::DequeueStatus Profiler::DequeueSerial() case QueueType::MessageCallstack: { ThreadCtxCheckSerial( messageFatThread ); - ptr = MemRead( &item->messageFat.textAndMetadata ).GetAddress(); + TaggedUserlandAddress taggedPtr = MemRead( &item->messageFat.textAndMetadata ); + ptr = taggedPtr.GetAddress(); uint16_t size = MemRead( &item->messageFat.size ); SendSingleString( (const char*)ptr, size ); tracy_free_fast( (void*)ptr ); - break; + + const uint8_t metadata = taggedPtr.GetTag(); + QueueItem itemWithMetadata; + MemWrite( &itemWithMetadata.hdr, item->hdr ); + MemWrite( &itemWithMetadata.messageMetadata, item->message ); + MemWrite( &itemWithMetadata.messageMetadata.metadata, metadata ); + AppendData( &itemWithMetadata, QueueDataSize[idx] ); + item++; + continue; // Next item since we sent it manually } case QueueType::MessageColor: case QueueType::MessageColorCallstack: { ThreadCtxCheckSerial( messageColorFatThread ); - ptr = MemRead( &item->messageColorFat.textAndMetadata ).GetAddress(); + TaggedUserlandAddress taggedPtr = MemRead( &item->messageColorFat.textAndMetadata ); + ptr = taggedPtr.GetAddress(); uint16_t size = MemRead( &item->messageColorFat.size ); SendSingleString( (const char*)ptr, size ); tracy_free_fast( (void*)ptr ); - break; + + const uint8_t metadata = taggedPtr.GetTag(); + QueueItem itemWithMetadata; + MemWrite( &itemWithMetadata.hdr, item->hdr ); + MemWrite( &itemWithMetadata.messageColorMetadata, item->messageColor ); + MemWrite( &itemWithMetadata.messageColorMetadata.metadata, metadata ); + AppendData( &itemWithMetadata, QueueDataSize[idx] ); + item++; + continue; // Next item since we sent it manually } case QueueType::Callstack: {