Don't depend on callstack frames to match hw samples to source.

This commit is contained in:
Bartosz Taudul 2021-06-20 01:01:29 +02:00
parent 2f3ee594f0
commit bc4016e97c
No known key found for this signature in database
GPG Key ID: B7FE2008B7575DF3

View File

@ -4055,14 +4055,12 @@ void SourceView::GatherIpHwStats( AddrStat& iptotalSrc, AddrStat& iptotalAsm, un
if( filename )
{
auto frame = worker.GetCallstackFrame( worker.PackPointer( addr ) );
if( frame )
{
auto ffn = worker.GetString( frame->data[0].file );
if( strcmp( ffn, filename ) == 0 )
{
const auto line = frame->data[0].line;
uint32_t line;
const auto fref = worker.GetLocationForAddress( addr, line );
if( line != 0 )
{
auto ffn = worker.GetString( fref );
if( strcmp( ffn, filename ) == 0 )
{
auto it = ipcountSrc.find( line );
if( it == ipcountSrc.end() )
@ -4081,7 +4079,6 @@ void SourceView::GatherIpHwStats( AddrStat& iptotalSrc, AddrStat& iptotalAsm, un
}
}
}
}
}
void SourceView::GatherIpStats( uint64_t baseAddr, AddrStat& iptotalSrc, AddrStat& iptotalAsm, unordered_flat_map<uint64_t, AddrStat>& ipcountSrc, unordered_flat_map<uint64_t, AddrStat>& ipcountAsm, AddrStat& ipmaxSrc, AddrStat& ipmaxAsm, const Worker& worker, bool limitView, const View& view )