diff options
author | Mathias Agopian <mathias@google.com> | 2013-03-19 23:00:40 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-03-19 23:00:40 +0000 |
commit | ca987c877549b0d5472e91ded98f3ba6fea8a96d (patch) | |
tree | 5265e6ba55520e3daaf00eb739d270d0070890c5 | |
parent | ef64b75a936ffd194673dbce6766995f86b42ba9 (diff) | |
parent | 19437cb84c8352669c3ccfdec8b8bf6a6a08f3d3 (diff) | |
download | frameworks_native-ca987c877549b0d5472e91ded98f3ba6fea8a96d.zip frameworks_native-ca987c877549b0d5472e91ded98f3ba6fea8a96d.tar.gz frameworks_native-ca987c877549b0d5472e91ded98f3ba6fea8a96d.tar.bz2 |
Merge "A few tweaks to RefBase debugging" into jb-mr2-dev
-rw-r--r-- | libs/utils/RefBase.cpp | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/libs/utils/RefBase.cpp b/libs/utils/RefBase.cpp index 0623f46..ef87131 100644 --- a/libs/utils/RefBase.cpp +++ b/libs/utils/RefBase.cpp @@ -35,10 +35,18 @@ // compile with refcounting debugging enabled #define DEBUG_REFS 0 -#define DEBUG_REFS_FATAL_SANITY_CHECKS 0 -#define DEBUG_REFS_ENABLED_BY_DEFAULT 1 + +// whether ref-tracking is enabled by default, if not, trackMe(true, false) +// needs to be called explicitly +#define DEBUG_REFS_ENABLED_BY_DEFAULT 0 + +// whether callstack are collected (significantly slows things down) #define DEBUG_REFS_CALLSTACK_ENABLED 1 +// folder where stack traces are saved when DEBUG_REFS is enabled +// this folder needs to exist and be writable +#define DEBUG_REFS_CALLSTACK_PATH "/data/debug" + // log all reference counting operations #define PRINT_REFS 0 @@ -96,11 +104,7 @@ public: bool dumpStack = false; if (!mRetain && mStrongRefs != NULL) { dumpStack = true; -#if DEBUG_REFS_FATAL_SANITY_CHECKS - LOG_ALWAYS_FATAL("Strong references remain!"); -#else ALOGE("Strong references remain:"); -#endif ref_entry* refs = mStrongRefs; while (refs) { char inc = refs->ref >= 0 ? '+' : '-'; @@ -114,11 +118,7 @@ public: if (!mRetain && mWeakRefs != NULL) { dumpStack = true; -#if DEBUG_REFS_FATAL_SANITY_CHECKS - LOG_ALWAYS_FATAL("Weak references remain:"); -#else ALOGE("Weak references remain!"); -#endif ref_entry* refs = mWeakRefs; while (refs) { char inc = refs->ref >= 0 ? '+' : '-'; @@ -199,7 +199,7 @@ public: { char name[100]; - snprintf(name, 100, "/data/%p.stack", this); + snprintf(name, 100, DEBUG_REFS_CALLSTACK_PATH "/%p.stack", this); int rc = open(name, O_RDWR | O_CREAT | O_APPEND, 644); if (rc >= 0) { write(rc, text.string(), text.length()); @@ -258,12 +258,6 @@ private: ref = *refs; } -#if DEBUG_REFS_FATAL_SANITY_CHECKS - LOG_ALWAYS_FATAL("RefBase: removing id %p on RefBase %p" - "(weakref_type %p) that doesn't exist!", - id, mBase, this); -#endif - ALOGE("RefBase: removing id %p on RefBase %p" "(weakref_type %p) that doesn't exist!", id, mBase, this); |