mirror of
https://github.com/wolfpld/tracy
synced 2025-04-30 12:53:51 +00:00
Accept zero-depth callstack
This commit is contained in:
parent
117ab107c1
commit
39137d809e
@ -1470,7 +1470,7 @@ Profiler::Profiler()
|
|||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
pipe(m_pipe);
|
pipe(m_pipe);
|
||||||
# if defined __APPLE__ || defined BSD
|
# if defined __APPLE__ || defined BSD
|
||||||
// FreeBSD/XNU don't have F_SETPIPE_SZ, so use the default
|
// FreeBSD/XNU don't have F_SETPIPE_SZ, so use the default
|
||||||
m_pipeBufSize = 16384;
|
m_pipeBufSize = 16384;
|
||||||
# else
|
# else
|
||||||
m_pipeBufSize = (int)(ptrdiff_t)SafeSendBufferSize;
|
m_pipeBufSize = (int)(ptrdiff_t)SafeSendBufferSize;
|
||||||
@ -3157,7 +3157,7 @@ char* Profiler::SafeCopyProlog( const char* data, size_t size )
|
|||||||
void Profiler::SafeCopyEpilog( char* buf )
|
void Profiler::SafeCopyEpilog( char* buf )
|
||||||
{
|
{
|
||||||
if( buf != m_safeSendBuffer ) tracy_free( buf );
|
if( buf != m_safeSendBuffer ) tracy_free( buf );
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
m_inUse.store( false );
|
m_inUse.store( false );
|
||||||
#endif
|
#endif
|
||||||
@ -4117,7 +4117,7 @@ void Profiler::HandleSymbolCodeQuery( uint64_t symbol, uint32_t size )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
auto&& lambda = [ this, symbol ]( const char* buf, size_t size ) {
|
auto&& lambda = [ this, symbol ]( const char* buf, size_t size ) {
|
||||||
SendLongString( symbol, buf, size, QueueType::SymbolCode );
|
SendLongString( symbol, buf, size, QueueType::SymbolCode );
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4291,9 +4291,16 @@ TRACY_API TracyCZoneCtx ___tracy_emit_zone_begin_callstack( const struct ___trac
|
|||||||
TracyQueueCommitC( zoneValidationThread );
|
TracyQueueCommitC( zoneValidationThread );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
tracy::GetProfiler().SendCallstack( depth );
|
if (depth > 0 && tracy::has_stacktrace()) {
|
||||||
{
|
tracy::GetProfiler().SendCallstack( depth );
|
||||||
TracyQueuePrepareC( tracy::QueueType::ZoneBeginCallstack );
|
{
|
||||||
|
TracyQueuePrepareC( tracy::QueueType::ZoneBeginCallstack );
|
||||||
|
tracy::MemWrite( &item->zoneBegin.time, tracy::Profiler::GetTime() );
|
||||||
|
tracy::MemWrite( &item->zoneBegin.srcloc, (uint64_t)srcloc );
|
||||||
|
TracyQueueCommitC( zoneBeginThread );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
TracyQueuePrepareC( tracy::QueueType::ZoneBegin );
|
||||||
tracy::MemWrite( &item->zoneBegin.time, tracy::Profiler::GetTime() );
|
tracy::MemWrite( &item->zoneBegin.time, tracy::Profiler::GetTime() );
|
||||||
tracy::MemWrite( &item->zoneBegin.srcloc, (uint64_t)srcloc );
|
tracy::MemWrite( &item->zoneBegin.srcloc, (uint64_t)srcloc );
|
||||||
TracyQueueCommitC( zoneBeginThread );
|
TracyQueueCommitC( zoneBeginThread );
|
||||||
@ -4356,9 +4363,16 @@ TRACY_API TracyCZoneCtx ___tracy_emit_zone_begin_alloc_callstack( uint64_t srclo
|
|||||||
TracyQueueCommitC( zoneValidationThread );
|
TracyQueueCommitC( zoneValidationThread );
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
tracy::GetProfiler().SendCallstack( depth );
|
if (depth > 0 && tracy::has_stacktrace()) {
|
||||||
{
|
tracy::GetProfiler().SendCallstack( depth );
|
||||||
TracyQueuePrepareC( tracy::QueueType::ZoneBeginAllocSrcLocCallstack );
|
{
|
||||||
|
TracyQueuePrepareC( tracy::QueueType::ZoneBeginAllocSrcLocCallstack );
|
||||||
|
tracy::MemWrite( &item->zoneBegin.time, tracy::Profiler::GetTime() );
|
||||||
|
tracy::MemWrite( &item->zoneBegin.srcloc, srcloc );
|
||||||
|
TracyQueueCommitC( zoneBeginThread );
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
TracyQueuePrepareC( tracy::QueueType::ZoneBeginAllocSrcLoc );
|
||||||
tracy::MemWrite( &item->zoneBegin.time, tracy::Profiler::GetTime() );
|
tracy::MemWrite( &item->zoneBegin.time, tracy::Profiler::GetTime() );
|
||||||
tracy::MemWrite( &item->zoneBegin.srcloc, srcloc );
|
tracy::MemWrite( &item->zoneBegin.srcloc, srcloc );
|
||||||
TracyQueueCommitC( zoneBeginThread );
|
TracyQueueCommitC( zoneBeginThread );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user