Filename in callstack frame is not a persistent pointer.

This commit is contained in:
Bartosz Taudul
2018-06-20 01:26:05 +02:00
parent 56479b86fa
commit 88b1955a5a
4 changed files with 19 additions and 8 deletions

View File

@@ -78,15 +78,21 @@ CallstackEntry DecodeCallstackPtr( uint64_t ptr )
line.SizeOfStruct = sizeof( IMAGEHLP_LINE64 );
if( SymGetLineFromAddr64( proc, ptr, &displacement, &line ) == 0 )
{
ret.file = "[unknown]";
line.FileName = "[unknown]";
ret.line = 0;
}
else
{
ret.file = line.FileName;
ret.line = line.LineNumber;
}
const auto fsz = strlen( line.FileName );
auto file = (char*)tracy_malloc( fsz + 1 );
memcpy( file, line.FileName, fsz );
file[fsz] = '\0';
ret.file = file;
return ret;
}