forked from OSchip/llvm-project
[Sanitizer] Simplify StackTrace::PrintStack interface: prefer common flags to turn on/off the symbolization
llvm-svn: 193587
This commit is contained in:
parent
51bfb820cc
commit
a687d2593f
|
|
@ -29,8 +29,7 @@ void PrintStack(const uptr *trace, uptr size) {
|
||||||
Printf("<empty stack>\n\n");
|
Printf("<empty stack>\n\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StackTrace::PrintStack(trace, size, common_flags()->symbolize,
|
StackTrace::PrintStack(trace, size, MaybeCallAsanSymbolize);
|
||||||
MaybeCallAsanSymbolize);
|
|
||||||
Printf("\n");
|
Printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -295,7 +295,7 @@ static void PrintStackTraceById(u32 stack_trace_id) {
|
||||||
CHECK(stack_trace_id);
|
CHECK(stack_trace_id);
|
||||||
uptr size = 0;
|
uptr size = 0;
|
||||||
const uptr *trace = StackDepotGet(stack_trace_id, &size);
|
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.
|
// ForEachChunk callback. Aggregates unreachable chunks into a LeakReport.
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,7 @@ static void ParseFlagsFromString(Flags *f, const char *str) {
|
||||||
static void InitializeFlags(Flags *f, const char *options) {
|
static void InitializeFlags(Flags *f, const char *options) {
|
||||||
CommonFlags *cf = common_flags();
|
CommonFlags *cf = common_flags();
|
||||||
cf->external_symbolizer_path = GetEnv("MSAN_SYMBOLIZER_PATH");
|
cf->external_symbolizer_path = GetEnv("MSAN_SYMBOLIZER_PATH");
|
||||||
|
cf->symbolize = true;
|
||||||
cf->strip_path_prefix = "";
|
cf->strip_path_prefix = "";
|
||||||
cf->fast_unwind_on_fatal = false;
|
cf->fast_unwind_on_fatal = false;
|
||||||
cf->fast_unwind_on_malloc = true;
|
cf->fast_unwind_on_malloc = true;
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ class Decorator: private __sanitizer::AnsiColorDecorator {
|
||||||
|
|
||||||
static void PrintStack(const uptr *trace, uptr size) {
|
static void PrintStack(const uptr *trace, uptr size) {
|
||||||
SymbolizerScope sym_scope;
|
SymbolizerScope sym_scope;
|
||||||
StackTrace::PrintStack(trace, size, true, 0);
|
StackTrace::PrintStack(trace, size);
|
||||||
Printf("\n");
|
Printf("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ static void PrintStackFramePrefix(uptr frame_num, uptr pc) {
|
||||||
Printf(" #%zu 0x%zx", frame_num, 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) {
|
SymbolizeCallback symbolize_callback) {
|
||||||
MemoryMappingLayout proc_maps(/*cache_enabled*/true);
|
MemoryMappingLayout proc_maps(/*cache_enabled*/true);
|
||||||
InternalScopedBuffer<char> buff(GetPageSizeCached() * 2);
|
InternalScopedBuffer<char> buff(GetPageSizeCached() * 2);
|
||||||
|
|
@ -62,7 +62,7 @@ void StackTrace::PrintStack(const uptr *addr, uptr size, bool symbolize,
|
||||||
frame_num++;
|
frame_num++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (symbolize && addr_frames_num == 0) {
|
if (common_flags()->symbolize && addr_frames_num == 0) {
|
||||||
// Use our own (online) symbolizer, if necessary.
|
// Use our own (online) symbolizer, if necessary.
|
||||||
if (Symbolizer *sym = Symbolizer::GetOrNull())
|
if (Symbolizer *sym = Symbolizer::GetOrNull())
|
||||||
addr_frames_num =
|
addr_frames_num =
|
||||||
|
|
|
||||||
|
|
@ -34,8 +34,8 @@ struct StackTrace {
|
||||||
uptr size;
|
uptr size;
|
||||||
uptr trace[kStackTraceMax];
|
uptr trace[kStackTraceMax];
|
||||||
|
|
||||||
static void PrintStack(const uptr *addr, uptr size, bool symbolize,
|
static void PrintStack(const uptr *addr, uptr size,
|
||||||
SymbolizeCallback symbolize_callback);
|
SymbolizeCallback symbolize_callback = 0);
|
||||||
|
|
||||||
void CopyFrom(const uptr *src, uptr src_size) {
|
void CopyFrom(const uptr *src, uptr src_size) {
|
||||||
size = src_size;
|
size = src_size;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue