am f41f3ec5: am 1a397ece: Merge "Add backtrace tool" into jb-mr1-dev

* commit 'f41f3ec541e3455a4615287a673103a19d75fc3c':
  Add backtrace tool
main
Satoshi Kataoka 2012-09-03 05:20:35 -07:00 committed by Android Git Automerger
commit 2fbe15e380
1 changed files with 26 additions and 0 deletions

View File

@ -83,12 +83,38 @@ static inline void dumpWordInt(const int *word, const int length) {
AKLOGI("i[ %s ]", charBuf);
}
#ifndef __ANDROID__
#define ASSERT(success) do { if(!success) { showStackTrace(); assert(success);};} while (0)
#define SHOW_STACK_TRACE do { showStackTrace(); } while (0)
#include <execinfo.h>
#include <stdlib.h>
static inline void showStackTrace() {
void *callstack[128];
int i, frames = backtrace(callstack, 128);
char **strs = backtrace_symbols(callstack, frames);
for (i = 0; i < frames; ++i) {
if (i == 0) {
AKLOGI("=== Trace ===");
continue;
}
AKLOGI("%s", strs[i]);
}
free(strs);
}
#else
#define ASSERT(success)
#define SHOW_STACK_TRACE
#endif
#else
#define AKLOGE(fmt, ...)
#define AKLOGI(fmt, ...)
#define DUMP_RESULT(words, frequencies, maxWordCount, maxWordLength)
#define DUMP_WORD(word, length)
#define DUMP_WORD_INT(word, length)
#define ASSERT(success)
#define SHOW_STACK_TRACE
#endif
#ifdef FLAG_DO_PROFILE