2
0
mirror of https://github.com/wolfpld/tracy synced 2026-02-20 15:22:14 +00:00

Hide RtlWalkFrameChain inside library.

This commit is contained in:
Bartosz Taudul
2020-01-25 16:49:29 +01:00
parent ae5c446652
commit 13370dc01c
2 changed files with 18 additions and 14 deletions

View File

@@ -36,7 +36,11 @@ enum { MaxCbTrace = 16 };
int cb_num;
CallstackEntry cb_data[MaxCbTrace];
extern "C" { t_RtlWalkFrameChain RtlWalkFrameChain = 0; }
extern "C"
{
typedef unsigned long (__stdcall *t_RtlWalkFrameChain)( void**, unsigned long, unsigned long );
t_RtlWalkFrameChain RtlWalkFrameChain = 0;
}
#if defined __MINGW32__ && API_VERSION_NUMBER < 12
extern "C" {
@@ -62,6 +66,14 @@ void InitCallstack()
SymSetOptions( SYMOPT_LOAD_LINES );
}
TRACY_API tracy_force_inline uintptr_t* CallTrace( int depth )
{
auto trace = (uintptr_t*)tracy_malloc( ( 1 + depth ) * sizeof( uintptr_t ) );
const auto num = RtlWalkFrameChain( (void**)( trace + 1 ), depth, 0 );
*trace = num;
return trace;
}
const char* DecodeCallstackPtrFast( uint64_t ptr )
{
static char ret[1024];