mirror of
https://github.com/wolfpld/tracy.git
synced 2025-03-20 07:40:02 +08:00
Retrieve address of symbol, not first instruction in line.
This commit is contained in:
parent
8045ceee5d
commit
ee13d3fa44
@ -376,6 +376,11 @@ CallstackSymbolData DecodeCodeAddress( uint64_t ptr )
|
|||||||
const auto proc = GetCurrentProcess();
|
const auto proc = GetCurrentProcess();
|
||||||
bool done = false;
|
bool done = false;
|
||||||
|
|
||||||
|
char buf[sizeof( SYMBOL_INFO ) + MaxNameSize];
|
||||||
|
auto si = (SYMBOL_INFO*)buf;
|
||||||
|
si->SizeOfStruct = sizeof( SYMBOL_INFO );
|
||||||
|
si->MaxNameLen = MaxNameSize;
|
||||||
|
|
||||||
IMAGEHLP_LINE64 line;
|
IMAGEHLP_LINE64 line;
|
||||||
DWORD displacement = 0;
|
DWORD displacement = 0;
|
||||||
line.SizeOfStruct = sizeof(IMAGEHLP_LINE64);
|
line.SizeOfStruct = sizeof(IMAGEHLP_LINE64);
|
||||||
@ -397,8 +402,16 @@ CallstackSymbolData DecodeCodeAddress( uint64_t ptr )
|
|||||||
{
|
{
|
||||||
sym.file = line.FileName;
|
sym.file = line.FileName;
|
||||||
sym.line = line.LineNumber;
|
sym.line = line.LineNumber;
|
||||||
sym.symAddr = line.Address;
|
|
||||||
done = true;
|
done = true;
|
||||||
|
|
||||||
|
if( _SymFromInlineContext( proc, ptr, ctx, nullptr, si ) != 0 )
|
||||||
|
{
|
||||||
|
sym.symAddr = si->Address;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sym.symAddr = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -415,7 +428,15 @@ CallstackSymbolData DecodeCodeAddress( uint64_t ptr )
|
|||||||
{
|
{
|
||||||
sym.file = line.FileName;
|
sym.file = line.FileName;
|
||||||
sym.line = line.LineNumber;
|
sym.line = line.LineNumber;
|
||||||
sym.symAddr = line.Address;
|
|
||||||
|
if( SymFromAddr( proc, ptr, nullptr, si ) != 0 )
|
||||||
|
{
|
||||||
|
sym.symAddr = si->Address;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sym.symAddr = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef TRACY_DBGHELP_LOCK
|
#ifdef TRACY_DBGHELP_LOCK
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user