From cab25d680e644d962041d05a319e485b96136a5d Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Thu, 21 Mar 2013 17:12:40 -0700 Subject: improved CallStack a bit - added a ctor that updates and dumps the stack immediately - added a "logtag" parameter to dump() Change-Id: Ie51c256071d282591752243bdb4f68cf9ff8829d --- libs/utils/CallStack.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'libs/utils/CallStack.cpp') diff --git a/libs/utils/CallStack.cpp b/libs/utils/CallStack.cpp index 66fabebc4d..e60f5d8e75 100644 --- a/libs/utils/CallStack.cpp +++ b/libs/utils/CallStack.cpp @@ -30,6 +30,11 @@ CallStack::CallStack() : mCount(0) { } +CallStack::CallStack(const char* logtag, int32_t ignoreDepth, int32_t maxDepth) { + this->update(ignoreDepth+1, maxDepth); + this->dump(logtag); +} + CallStack::CallStack(const CallStack& rhs) : mCount(rhs.mCount) { if (mCount) { @@ -96,7 +101,7 @@ void CallStack::update(int32_t ignoreDepth, int32_t maxDepth) { mCount = count > 0 ? count : 0; } -void CallStack::dump(const char* prefix) const { +void CallStack::dump(const char* logtag, const char* prefix) const { backtrace_symbol_t symbols[mCount]; get_backtrace_symbols(mStack, mCount, symbols); @@ -104,7 +109,9 @@ void CallStack::dump(const char* prefix) const { char line[MAX_BACKTRACE_LINE_LENGTH]; format_backtrace_line(i, &mStack[i], &symbols[i], line, MAX_BACKTRACE_LINE_LENGTH); - ALOGD("%s%s", prefix, line); + ALOG(LOG_DEBUG, logtag, "%s%s", + prefix ? prefix : "", + line); } free_backtrace_symbols(symbols, mCount); } -- cgit v1.2.3-59-g8ed1b