1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-26 07:31:15 +02:00

Add some instrumentation for debugging GC leaks

This commit is contained in:
Eelco Dolstra 2014-09-17 15:19:07 +02:00
parent d37d012774
commit 6e5b02bee4
4 changed files with 59 additions and 0 deletions

View file

@ -230,6 +230,8 @@ EvalState::EvalState(const Strings & _searchPath)
EvalState::~EvalState()
{
fileEvalCache.clear();
printCanaries();
}
@ -1464,4 +1466,24 @@ void EvalState::printStats()
}
void EvalState::printCanaries()
{
#if HAVE_BOEHMGC
if (!settings.get("debug-gc", false)) return;
GC_gcollect();
if (gcCanaries.empty()) {
printMsg(lvlError, "all canaries have been garbage-collected");
return;
}
printMsg(lvlError, "the following canaries have not been garbage-collected:");
for (auto i : gcCanaries)
printMsg(lvlError, format(" %1%") % i->string.s);
#endif
}
}