summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2013-10-29 05:31:25 +0000
committerAlexey Samsonov <samsonov@google.com>2013-10-29 05:31:25 +0000
commit7996a2e2a1c461743c9216f13429c04d75050230 (patch)
treecd3d5807c7b3d647e2ac12d2aa86d6983b32007e
parentf3603890015c130420def39d67a02c2fdafc6f84 (diff)
downloadcompiler-rt-7996a2e2a1c461743c9216f13429c04d75050230.tar.gz
compiler-rt-7996a2e2a1c461743c9216f13429c04d75050230.tar.bz2
compiler-rt-7996a2e2a1c461743c9216f13429c04d75050230.tar.xz
[Sanitizer] Simplify StackTrace::PrintStack interface: prefer common flags to turn on/off the symbolization
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@193587 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/asan/asan_stack.cc5
-rw-r--r--lib/lsan/lsan_common.cc2
-rw-r--r--lib/msan/msan.cc1
-rw-r--r--lib/msan/msan_report.cc2
-rw-r--r--lib/sanitizer_common/sanitizer_stacktrace.cc4
-rw-r--r--lib/sanitizer_common/sanitizer_stacktrace.h4
6 files changed, 9 insertions, 9 deletions
diff --git a/lib/asan/asan_stack.cc b/lib/asan/asan_stack.cc
index b70ee814..7fa9e05a 100644
--- a/lib/asan/asan_stack.cc
+++ b/lib/asan/asan_stack.cc
@@ -29,9 +29,8 @@ void PrintStack(const uptr *trace, uptr size) {
Printf("<empty stack>\n\n");
return;
}
- StackTrace::PrintStack(trace, size, common_flags()->symbolize,
- MaybeCallAsanSymbolize);
- Printf("\n");
+ StackTrace::PrintStack(trace, size, MaybeCallAsanSymbolize);
+ Printf("\n");
}
void PrintStack(StackTrace *stack) {
diff --git a/lib/lsan/lsan_common.cc b/lib/lsan/lsan_common.cc
index 8a3bc2e3..e305c0e2 100644
--- a/lib/lsan/lsan_common.cc
+++ b/lib/lsan/lsan_common.cc
@@ -295,7 +295,7 @@ static void PrintStackTraceById(u32 stack_trace_id) {
CHECK(stack_trace_id);
uptr size = 0;
const uptr *trace = StackDepotGet(stack_trace_id, &size);
- StackTrace::PrintStack(trace, size, common_flags()->symbolize, 0);
+ StackTrace::PrintStack(trace, size);
}
// ForEachChunk callback. Aggregates unreachable chunks into a LeakReport.
diff --git a/lib/msan/msan.cc b/lib/msan/msan.cc
index 92384315..8d2c5ec9 100644
--- a/lib/msan/msan.cc
+++ b/lib/msan/msan.cc
@@ -142,6 +142,7 @@ static void ParseFlagsFromString(Flags *f, const char *str) {
static void InitializeFlags(Flags *f, const char *options) {
CommonFlags *cf = common_flags();
cf->external_symbolizer_path = GetEnv("MSAN_SYMBOLIZER_PATH");
+ cf->symbolize = true;
cf->strip_path_prefix = "";
cf->fast_unwind_on_fatal = false;
cf->fast_unwind_on_malloc = true;
diff --git a/lib/msan/msan_report.cc b/lib/msan/msan_report.cc
index c0765016..a629304e 100644
--- a/lib/msan/msan_report.cc
+++ b/lib/msan/msan_report.cc
@@ -36,7 +36,7 @@ class Decorator: private __sanitizer::AnsiColorDecorator {
static void PrintStack(const uptr *trace, uptr size) {
SymbolizerScope sym_scope;
- StackTrace::PrintStack(trace, size, true, 0);
+ StackTrace::PrintStack(trace, size);
Printf("\n");
}
diff --git a/lib/sanitizer_common/sanitizer_stacktrace.cc b/lib/sanitizer_common/sanitizer_stacktrace.cc
index 2e9640b8..70209f25 100644
--- a/lib/sanitizer_common/sanitizer_stacktrace.cc
+++ b/lib/sanitizer_common/sanitizer_stacktrace.cc
@@ -38,7 +38,7 @@ static void PrintStackFramePrefix(uptr frame_num, uptr pc) {
Printf(" #%zu 0x%zx", frame_num, pc);
}
-void StackTrace::PrintStack(const uptr *addr, uptr size, bool symbolize,
+void StackTrace::PrintStack(const uptr *addr, uptr size,
SymbolizeCallback symbolize_callback) {
MemoryMappingLayout proc_maps(/*cache_enabled*/true);
InternalScopedBuffer<char> buff(GetPageSizeCached() * 2);
@@ -62,7 +62,7 @@ void StackTrace::PrintStack(const uptr *addr, uptr size, bool symbolize,
frame_num++;
}
}
- if (symbolize && addr_frames_num == 0) {
+ if (common_flags()->symbolize && addr_frames_num == 0) {
// Use our own (online) symbolizer, if necessary.
if (Symbolizer *sym = Symbolizer::GetOrNull())
addr_frames_num =
diff --git a/lib/sanitizer_common/sanitizer_stacktrace.h b/lib/sanitizer_common/sanitizer_stacktrace.h
index c191d891..e66e2a9b 100644
--- a/lib/sanitizer_common/sanitizer_stacktrace.h
+++ b/lib/sanitizer_common/sanitizer_stacktrace.h
@@ -34,8 +34,8 @@ struct StackTrace {
uptr size;
uptr trace[kStackTraceMax];
- static void PrintStack(const uptr *addr, uptr size, bool symbolize,
- SymbolizeCallback symbolize_callback);
+ static void PrintStack(const uptr *addr, uptr size,
+ SymbolizeCallback symbolize_callback = 0);
void CopyFrom(const uptr *src, uptr src_size) {
size = src_size;