From 51043ebc477200805e2d1d0f716b5f0173cf6be2 Mon Sep 17 00:00:00 2001 From: Bartosz Taudul Date: Tue, 19 Jun 2018 19:09:43 +0200 Subject: [PATCH] Callstack payload transfer. --- client/TracyProfiler.cpp | 25 +++++++++++++++++++++++++ client/TracyProfiler.hpp | 1 + common/TracyQueue.hpp | 2 ++ 3 files changed, 28 insertions(+) diff --git a/client/TracyProfiler.cpp b/client/TracyProfiler.cpp index 33cbe202..5b5a2be4 100644 --- a/client/TracyProfiler.cpp +++ b/client/TracyProfiler.cpp @@ -520,6 +520,31 @@ void Profiler::SendSourceLocationPayload( uint64_t _ptr ) AppendData( ptr + 4, l16 ); } +void Profiler::SendCallstackPayload( uint64_t _ptr ) +{ + auto ptr = (uintptr_t*)_ptr; + + QueueItem item; + MemWrite( &item.hdr.type, QueueType::CallstackPayload ); + MemWrite( &item.stringTransfer.ptr, _ptr ); + + const auto sz = *ptr++; + const auto len = sz * sizeof( uint64_t ); + const auto l16 = uint16_t( len ); + + NeedDataSize( QueueDataSize[(int)QueueType::CallstackPayload] + sizeof( l16 ) + l16 ); + + AppendData( &item, QueueDataSize[(int)QueueType::CallstackPayload] ); + AppendData( &l16, sizeof( l16 ) ); + + for( uintptr_t i=0; i