summaryrefslogtreecommitdiffstats
path: root/libs/utils
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2011-11-21 21:04:55 -0800
committerJeff Brown <jeffbrown@google.com>2011-11-21 21:04:55 -0800
commit38a931fcd3e3d5f16082fe41317f427f25b8d279 (patch)
tree3114e43fdb8e001827bde69c701f8d83fb3823e6 /libs/utils
parentfc6cf2888426f5192b9f284d14b911f3bbc7c2fb (diff)
downloadframeworks_base-38a931fcd3e3d5f16082fe41317f427f25b8d279.zip
frameworks_base-38a931fcd3e3d5f16082fe41317f427f25b8d279.tar.gz
frameworks_base-38a931fcd3e3d5f16082fe41317f427f25b8d279.tar.bz2
Use libcorkscrew to format the stack trace.
Change-Id: I3a5439ada76bc77c2dd491eaed2272e16a811cc7
Diffstat (limited to 'libs/utils')
-rw-r--r--libs/utils/CallStack.cpp32
1 files changed, 10 insertions, 22 deletions
diff --git a/libs/utils/CallStack.cpp b/libs/utils/CallStack.cpp
index b4c581b..c2a5e55 100644
--- a/libs/utils/CallStack.cpp
+++ b/libs/utils/CallStack.cpp
@@ -101,17 +101,10 @@ void CallStack::dump(const char* prefix) const {
get_backtrace_symbols(mStack, mCount, symbols);
for (size_t i = 0; i < mCount; i++) {
- const backtrace_frame_t& frame = mStack[i];
- const backtrace_symbol_t& symbol = symbols[i];
- const char* mapName = symbol.map_name ? symbol.map_name : "<unknown>";
- const char* symbolName = symbol.demangled_name ? symbol.demangled_name : symbol.name;
- if (symbolName) {
- LOGD("%s#%02d pc %08x %s (%s)\n", prefix,
- int(i), uint32_t(symbol.relative_pc), mapName, symbolName);
- } else {
- LOGD("%s#%02d pc %08x %s\n", prefix,
- int(i), uint32_t(symbol.relative_pc), mapName);
- }
+ char line[MAX_BACKTRACE_LINE_LENGTH];
+ format_backtrace_line(i, &mStack[i], &symbols[i],
+ line, MAX_BACKTRACE_LINE_LENGTH);
+ LOGD("%s%s", prefix, line);
}
free_backtrace_symbols(symbols, mCount);
}
@@ -122,17 +115,12 @@ String8 CallStack::toString(const char* prefix) const {
get_backtrace_symbols(mStack, mCount, symbols);
for (size_t i = 0; i < mCount; i++) {
- const backtrace_frame_t& frame = mStack[i];
- const backtrace_symbol_t& symbol = symbols[i];
- const char* mapName = symbol.map_name ? symbol.map_name : "<unknown>";
- const char* symbolName = symbol.demangled_name ? symbol.demangled_name : symbol.name;
- if (symbolName) {
- str.appendFormat("%s#%02d pc %08x %s (%s)\n", prefix,
- int(i), uint32_t(symbol.relative_pc), mapName, symbolName);
- } else {
- str.appendFormat("%s#%02d pc %08x %s\n", prefix,
- int(i), uint32_t(symbol.relative_pc), mapName);
- }
+ char line[MAX_BACKTRACE_LINE_LENGTH];
+ format_backtrace_line(i, &mStack[i], &symbols[i],
+ line, MAX_BACKTRACE_LINE_LENGTH);
+ str.append(prefix);
+ str.append(line);
+ str.append("\n");
}
free_backtrace_symbols(symbols, mCount);
return str;