diff options
author | Bartosz Taudul <wolf@nereid.pl> | 2021-11-27 20:12:06 +0300 |
---|---|---|
committer | Bartosz Taudul <wolf@nereid.pl> | 2021-11-27 20:12:06 +0300 |
commit | f3ee2235f602f684d30e2422b878638791aa7102 (patch) | |
tree | d5f01144cb343e69a7da5ae4962218ea5c6af45f | |
parent | 05f9c74170fc67cae390f3d9531e9965e5f2811d (diff) |
Enable sample parents selection for self-less symbols.
-rw-r--r-- | server/TracyView.cpp | 22 |
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 ) { |