From 03e2c3e0bed3ec6db10deebd399dcee75147b9f5 Mon Sep 17 00:00:00 2001 From: Milian Wolff Date: Tue, 2 Jan 2024 15:09:33 +0100 Subject: [PATCH] Show whether a frame was inlined in tooltips too --- src/flamegraph.cpp | 2 +- src/util.cpp | 11 ++++++++++- src/util.h | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/flamegraph.cpp b/src/flamegraph.cpp index 79de32d1..bb00f3da 100644 --- a/src/flamegraph.cpp +++ b/src/flamegraph.cpp @@ -261,7 +261,7 @@ QString FrameGraphicsItem::description() const root = static_cast(item); } - auto symbol = Util::formatSymbol(m_symbol); + auto symbol = Util::formatSymbolExtended(m_symbol); if (root == this) { return symbol; } diff --git a/src/util.cpp b/src/util.cpp index 2443722e..492a6a1d 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -91,7 +91,7 @@ std::pair elideArguments(const QString& symbolText) QString formatForTooltip(const Data::Symbol& symbol) { return QCoreApplication::translate("Util", "symbol: %1
binary: %2") - .arg(Util::formatSymbol(symbol).toHtmlEscaped(), Util::formatString(symbol.binary)); + .arg(Util::formatSymbolExtended(symbol).toHtmlEscaped(), Util::formatString(symbol.binary)); } QString formatTooltipImpl(int id, const QString& text, const Data::Costs* selfCosts, const Data::Costs* inclusiveCosts) @@ -266,6 +266,15 @@ QString Util::formatSymbol(const Data::Symbol& symbol, bool replaceEmptyString) return formatString(symbolString, replaceEmptyString); } +QString Util::formatSymbolExtended(const Data::Symbol& symbol) +{ + auto ret = formatSymbol(symbol); + if (symbol.isInline) { + ret = QCoreApplication::translate("Util", "%1 (inlined)").arg(ret); + } + return ret; +} + QString Util::formatCost(quint64 cost) { // resulting format: 1.234E56 diff --git a/src/util.h b/src/util.h index aac76741..4113c646 100644 --- a/src/util.h +++ b/src/util.h @@ -53,6 +53,7 @@ struct HashCombine QString formatString(const QString& input, bool replaceEmptyString = true); QString formatSymbol(const Data::Symbol& symbol, bool replaceEmptyString = true); +QString formatSymbolExtended(const Data::Symbol& symbol); QString formatCost(quint64 cost); QString formatCostRelative(quint64 selfCost, quint64 totalCost, bool addPercentSign = false); QString formatTimeString(quint64 nanoseconds, bool shortForm = false);