Add environment variable NIX_SHOW_SYMBOLS for dumping the symbol table
This commit is contained in:
parent
41ba5135e0
commit
bb6e6923f2
|
@ -1811,6 +1811,7 @@ void EvalState::printStats()
|
||||||
gc.attr("totalBytes", totalBytes);
|
gc.attr("totalBytes", totalBytes);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (countCalls) {
|
if (countCalls) {
|
||||||
{
|
{
|
||||||
auto obj = topObj.object("primops");
|
auto obj = topObj.object("primops");
|
||||||
|
@ -1846,6 +1847,11 @@ void EvalState::printStats()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (getEnv("NIX_SHOW_SYMBOLS", "0") != "0") {
|
||||||
|
auto list = topObj.list("symbols");
|
||||||
|
symbols.dump([&](const std::string & s) { list.elem(s); });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,6 +75,13 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t totalSize() const;
|
size_t totalSize() const;
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
void dump(T callback)
|
||||||
|
{
|
||||||
|
for (auto & s : symbols)
|
||||||
|
callback(s);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue