Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/wolfpld/tracy.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBartosz Taudul <wolf@nereid.pl>2021-11-27 20:12:06 +0300
committerBartosz Taudul <wolf@nereid.pl>2021-11-27 20:12:06 +0300
commitf3ee2235f602f684d30e2422b878638791aa7102 (patch)
treed5f01144cb343e69a7da5ae4962218ea5c6af45f
parent05f9c74170fc67cae390f3d9531e9965e5f2811d (diff)
Enable sample parents selection for self-less symbols.
-rw-r--r--server/TracyView.cpp22
1 files changed, 21 insertions, 1 deletions
diff --git a/server/TracyView.cpp b/server/TracyView.cpp
index bd9bc6c2..59560904 100644
--- a/server/TracyView.cpp
+++ b/server/TracyView.cpp
@@ -13598,7 +13598,27 @@ void View::DrawSamplesStatistics(Vector<SymList>& data, int64_t timeRange, Accum
auto it = inlineMap.find( v.symAddr );
excl = it != inlineMap.end() ? it->second.excl : 0;
}
- if( v.symAddr == 0 || excl == 0 )
+ bool hasNoSamples = v.symAddr == 0 || excl == 0;
+ if( !m_statSeparateInlines && hasNoSamples && v.symAddr != 0 && v.count > 0 )
+ {
+ auto inSym = m_worker.GetInlineSymbolList( v.symAddr, symlen );
+ assert( inSym != nullptr );
+ const auto symEnd = v.symAddr + symlen;
+ while( *inSym < symEnd )
+ {
+ auto sit = inlineMap.find( *inSym );
+ if( sit != inlineMap.end() )
+ {
+ if( sit->second.excl != 0 )
+ {
+ hasNoSamples = false;
+ break;
+ }
+ }
+ inSym++;
+ }
+ }
+ if( hasNoSamples )
{
if( isKernel )
{