summaryrefslogtreecommitdiff
path: root/src/core/managed/Manager.cpp
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-11 17:26:26 +0100
committerBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-11 17:26:26 +0100
commit5659292bf1a317235a51a946df640376f325b124 (patch)
treec48a8de86757856d30cf8f7a898aae67ac7c53e6 /src/core/managed/Manager.cpp
parent20c7aa703bf0be2744f1578d4e6c2044c15a51c0 (diff)
manager formatting stuff.
Diffstat (limited to 'src/core/managed/Manager.cpp')
-rw-r--r--src/core/managed/Manager.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/core/managed/Manager.cpp b/src/core/managed/Manager.cpp
index 859e5ec..694587f 100644
--- a/src/core/managed/Manager.cpp
+++ b/src/core/managed/Manager.cpp
@@ -123,6 +123,12 @@ Manager::~Manager()
// Perform a final sweep
sweep();
+#ifdef MANAGER_GRAPHVIZ_EXPORT
+ if (!objects.empty()) {
+ exportGraphviz("manager_crashdump.dot");
+ }
+#endif
+
// All objects should have been deleted!
assert(objects.empty());
@@ -220,10 +226,11 @@ void Manager::deleteRef(Managed *tar, Managed *src, bool all)
#ifdef MANAGER_DEBUG_HIDDEN_ROOTED
if (deletionRecursionDepth > 0 && src == 0) {
- std::cerr << "\x1b[41;30mManager:\x1b[0m A managed object contains a rooted reference, "
+ std::cerr << "\x1b[41;30mManager:\x1b[0m A managed object contains a "
+ "rooted reference, "
"this may cause memory leaks!" << std::endl;
- std::cerr << "\x1b[41;30mManager:\x1b[0m Referenced object is " << tar << " of type "
- << tar->type()->name << std::endl;
+ std::cerr << "\x1b[41;30mManager:\x1b[0m Referenced object is " << tar
+ << " of type " << tar->type()->name << std::endl;
}
#endif
@@ -635,7 +642,8 @@ void Manager::exportGraphviz(const char *filename)
// Print the label
fs << "\t\tlabel=<"
<< "<TABLE BORDER=\"0\" CELLBORDER=\"1\" CELLSPACING=\"0\">"
- << "<TR><TD>" << std::hex << std::showbase << p << "</TD></TR>"
+ << "<TR><TD>" << std::hex << std::showbase << p << " ("
+ << getUid(objectPtr) << ")</TD></TR>"
<< "<TR><TD><I>" << typeName << "</I></TD></TR>";
// Print any name