diff options
author | Alexey Samsonov <vonosmas@gmail.com> | 2015-03-17 23:46:06 +0000 |
---|---|---|
committer | Alexey Samsonov <vonosmas@gmail.com> | 2015-03-17 23:46:06 +0000 |
commit | fdadb15ad3ddb79538fb6c8ffbff6f012fcc7b6b (patch) | |
tree | 931faaf8b285b95159edfc5d14e948871e317c8b /lib/sanitizer_common/sanitizer_common_libcdep.cc | |
parent | 54d350859e15087856d4d6f1d19162a485aa602e (diff) |
Improve SUMMARY reporting in sanitizers.
Make sure SUMMARY is always reported unless print_summary flag is set to
false, even if symbolizer is unavailable or report stack trace is empty.
If file/line info for PC can't be evaluated, print module name/offset
like we do in stack trace.
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@232567 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/sanitizer_common/sanitizer_common_libcdep.cc')
-rw-r--r-- | lib/sanitizer_common/sanitizer_common_libcdep.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/sanitizer_common/sanitizer_common_libcdep.cc b/lib/sanitizer_common/sanitizer_common_libcdep.cc index 1d6d82aaf..9622e60c2 100644 --- a/lib/sanitizer_common/sanitizer_common_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_common_libcdep.cc @@ -44,8 +44,10 @@ void SetSandboxingCallback(void (*f)()) { void ReportErrorSummary(const char *error_type, StackTrace *stack) { if (!common_flags()->print_summary) return; - if (stack->size == 0 || !Symbolizer::GetOrInit()->CanReturnFileLineInfo()) + if (stack->size == 0) { + ReportErrorSummary(error_type); return; + } // Currently, we include the first stack frame into the report summary. // Maybe sometimes we need to choose another frame (e.g. skip memcpy/etc). uptr pc = StackTrace::GetPreviousInstructionPc(stack->trace[0]); |