mirror of
https://github.com/wolfpld/tracy
synced 2025-04-29 20:33:52 +00:00
Collect symbol sizes.
This commit is contained in:
parent
954c43912d
commit
d47e6819a8
@ -286,7 +286,16 @@ CallstackEntryData DecodeCallstackPtr( uint64_t ptr )
|
|||||||
|
|
||||||
cb_data[write].name = symValid ? CopyString( si->Name, si->NameLen ) : CopyString( moduleName );
|
cb_data[write].name = symValid ? CopyString( si->Name, si->NameLen ) : CopyString( moduleName );
|
||||||
cb_data[write].file = CopyString( filename );
|
cb_data[write].file = CopyString( filename );
|
||||||
cb_data[write].symAddr = symValid ? si->Address : 0;
|
if( symValid )
|
||||||
|
{
|
||||||
|
cb_data[write].symLen = si->Size;
|
||||||
|
cb_data[write].symAddr = si->Address;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cb_data[write].symLen = 0;
|
||||||
|
cb_data[write].symAddr = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef __CYGWIN__
|
#ifndef __CYGWIN__
|
||||||
@ -310,7 +319,16 @@ CallstackEntryData DecodeCallstackPtr( uint64_t ptr )
|
|||||||
|
|
||||||
cb.name = symInlineValid ? CopyString( si->Name, si->NameLen ) : CopyString( moduleName );
|
cb.name = symInlineValid ? CopyString( si->Name, si->NameLen ) : CopyString( moduleName );
|
||||||
cb.file = CopyString( filename );
|
cb.file = CopyString( filename );
|
||||||
cb.symAddr = symInlineValid ? si->Address : 0;
|
if( symInlineValid )
|
||||||
|
{
|
||||||
|
cb.symLen = si->Size;
|
||||||
|
cb.symAddr = si->Address;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cb.symLen = 0;
|
||||||
|
cb.symAddr = 0;
|
||||||
|
}
|
||||||
|
|
||||||
ctx++;
|
ctx++;
|
||||||
}
|
}
|
||||||
@ -413,6 +431,7 @@ static int CallstackDataCb( void* /*data*/, uintptr_t pc, const char* fn, int li
|
|||||||
enum { DemangleBufLen = 64*1024 };
|
enum { DemangleBufLen = 64*1024 };
|
||||||
char demangled[DemangleBufLen];
|
char demangled[DemangleBufLen];
|
||||||
|
|
||||||
|
cb_data[cb_num].symLen = 0;
|
||||||
cb_data[cb_num].symAddr = (uint64_t)pc;
|
cb_data[cb_num].symAddr = (uint64_t)pc;
|
||||||
|
|
||||||
if( !fn && !function )
|
if( !fn && !function )
|
||||||
@ -524,11 +543,13 @@ static void CallstackErrorCb( void* /*data*/, const char* /*msg*/, int /*errnum*
|
|||||||
|
|
||||||
void SymInfoCallback( void* /*data*/, uintptr_t pc, const char* symname, uintptr_t symval, uintptr_t symsize )
|
void SymInfoCallback( void* /*data*/, uintptr_t pc, const char* symname, uintptr_t symval, uintptr_t symsize )
|
||||||
{
|
{
|
||||||
|
cb_data[cb_fixup].symLen = (uint32_t)symsize;
|
||||||
cb_data[cb_fixup].symAddr = (uint64_t)symval;
|
cb_data[cb_fixup].symAddr = (uint64_t)symval;
|
||||||
}
|
}
|
||||||
|
|
||||||
void SymInfoError( void* /*data*/, const char* /*msg*/, int /*errnum*/ )
|
void SymInfoError( void* /*data*/, const char* /*msg*/, int /*errnum*/ )
|
||||||
{
|
{
|
||||||
|
cb_data[cb_fixup].symLen = 0;
|
||||||
cb_data[cb_fixup].symAddr = 0;
|
cb_data[cb_fixup].symAddr = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -647,6 +668,7 @@ CallstackEntryData DecodeCallstackPtr( uint64_t ptr )
|
|||||||
loc[loclen + addrlen] = '\0';
|
loc[loclen + addrlen] = '\0';
|
||||||
cb.file = loc;
|
cb.file = loc;
|
||||||
|
|
||||||
|
cb.symLen = 0;
|
||||||
cb.symAddr = (uint64_t)symaddr;
|
cb.symAddr = (uint64_t)symaddr;
|
||||||
|
|
||||||
if( demangled ) free( demangled );
|
if( demangled ) free( demangled );
|
||||||
|
@ -34,6 +34,7 @@ struct CallstackEntry
|
|||||||
const char* name;
|
const char* name;
|
||||||
const char* file;
|
const char* file;
|
||||||
uint32_t line;
|
uint32_t line;
|
||||||
|
uint32_t symLen;
|
||||||
uint64_t symAddr;
|
uint64_t symAddr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user