[PATCH] D37766: [compiler-rt] Move dump_instruction_bytes and dump_registers into sanitizer_common
Vitaly Buka via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Sep 12 13:47:32 PDT 2017
vitalybuka created this revision.
Herald added subscribers: dberris, kubamracek.
Part of https://github.com/google/sanitizers/issues/637
https://reviews.llvm.org/D37766
Files:
compiler-rt/lib/asan/asan_errors.cc
compiler-rt/lib/asan/asan_flags.inc
compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
compiler-rt/test/asan/TestCases/Posix/dump_instruction_bytes.cc
compiler-rt/test/sanitizer_common/TestCases/Posix/dump_instruction_bytes.cc
Index: compiler-rt/test/sanitizer_common/TestCases/Posix/dump_instruction_bytes.cc
===================================================================
--- compiler-rt/test/sanitizer_common/TestCases/Posix/dump_instruction_bytes.cc
+++ compiler-rt/test/sanitizer_common/TestCases/Posix/dump_instruction_bytes.cc
@@ -1,10 +1,11 @@
-// Check that ASan prints the faulting instruction bytes on
+// Check that sanitizer prints the faulting instruction bytes on
// dump_instruction_bytes=1
-// RUN: %clangxx_asan %s -o %t
-// RUN: %env_asan_opts=dump_instruction_bytes=1 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-DUMP
+// RUN: %clangxx %s -o %t
+// RUN: %env_tool_opts=dump_instruction_bytes=1 not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-DUMP
// RUN: not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-NODUMP
//
// REQUIRES: x86-target-arch
+// XFAIL: lsan, msan, tsan, ubsan
int main() {
#if defined(__x86_64__)
Index: compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
===================================================================
--- compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
+++ compiler-rt/lib/sanitizer_common/sanitizer_flags.inc
@@ -229,3 +229,8 @@
"(asan only).")
COMMON_FLAG(bool, html_cov_report, false, "Generate html coverage report.")
COMMON_FLAG(const char *, sancov_path, "sancov", "Sancov tool location.")
+COMMON_FLAG(bool, dump_instruction_bytes, false,
+ "If true, dump 16 bytes starting at the instruction that caused SEGV")
+COMMON_FLAG(bool, dump_registers, true,
+ "If true, dump values of CPU registers when SEGV happens. Only "
+ "available on OS X for now.")
Index: compiler-rt/lib/asan/asan_flags.inc
===================================================================
--- compiler-rt/lib/asan/asan_flags.inc
+++ compiler-rt/lib/asan/asan_flags.inc
@@ -147,11 +147,6 @@
"If >=2, detect violation of One-Definition-Rule (ODR); "
"If ==1, detect ODR-violation only if the two variables "
"have different sizes")
-ASAN_FLAG(bool, dump_instruction_bytes, false,
- "If true, dump 16 bytes starting at the instruction that caused SEGV")
-ASAN_FLAG(bool, dump_registers, true,
- "If true, dump values of CPU registers when SEGV happens. Only "
- "available on OS X for now.")
ASAN_FLAG(const char *, suppressions, "", "Suppressions file name.")
ASAN_FLAG(bool, halt_on_error, true,
"Crash the program after printing the first error report "
Index: compiler-rt/lib/asan/asan_errors.cc
===================================================================
--- compiler-rt/lib/asan/asan_errors.cc
+++ compiler-rt/lib/asan/asan_errors.cc
@@ -39,7 +39,8 @@
}
static void MaybeDumpInstructionBytes(uptr pc) {
- if (!flags()->dump_instruction_bytes || (pc < GetPageSizeCached())) return;
+ if (!common_flags()->dump_instruction_bytes || (pc < GetPageSizeCached()))
+ return;
InternalScopedString str(1024);
str.append("First 16 instruction bytes at pc: ");
if (IsAccessibleMemoryRange(pc, 16)) {
@@ -54,7 +55,7 @@
}
static void MaybeDumpRegisters(void *context) {
- if (!flags()->dump_registers) return;
+ if (!common_flags()->dump_registers) return;
SignalContext::DumpAllRegisters(context);
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D37766.114903.patch
Type: text/x-patch
Size: 3296 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170912/f0257413/attachment.bin>
More information about the llvm-commits
mailing list