| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 232567
|
|
|
|
|
|
| |
32-bit offsets dump 32-bit offsets on 32-bit arch and 64-bit offsets on 64-bit arch. Also add the 'bits' parameter to sancov.py. This is a user-visible interface change.
llvm-svn: 232555
|
|
|
|
|
|
|
| |
__sanitizer_cov_hint is part of a different functionality
and was not intended to be submitted.
llvm-svn: 232506
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The experiments can be used to evaluate potential optimizations that remove
instrumentation (assess false negatives). Instead of completely removing
some instrumentation, you set Exp to a non-zero value (mask of optimization
experiments that want to remove instrumentation of this instruction).
If Exp is non-zero, this pass will emit special calls into runtime
(e.g. __asan_report_exp_load1 instead of __asan_report_load1). These calls
make runtime terminate the program in a special way (with a different
exit status). Then you run the new compiler on a buggy corpus, collect
the special terminations (ideally, you don't see them at all -- no false
negatives) and make the decision on the optimization.
The exact reaction to experiments in runtime is not implemented in this patch.
It will be defined and implemented in a subsequent patch.
http://reviews.llvm.org/D8198
llvm-svn: 232501
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D8175
llvm-svn: 232072
|
|
|
|
|
|
|
|
| |
They are currently still *not* used, "llvm-symbolizer" is still the default symbolizer on OS X.
Reviewed at http://reviews.llvm.org/D6588
llvm-svn: 232026
|
|
|
|
|
|
| |
-sanitizer-coverage-block-threshold=0 to actually do something useful.
llvm-svn: 231736
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D8105
llvm-svn: 231680
|
|
|
|
| |
llvm-svn: 231562
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D8089
llvm-svn: 231478
|
|
|
|
|
|
| |
As per comments in http://reviews.llvm.org/D8032
llvm-svn: 231457
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D8087
llvm-svn: 231428
|
|
|
|
|
|
| |
hopefully making it more robust. Also increase the allowed coverage size on 32-bit.
llvm-svn: 231413
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Long story short: stop-the-world briefly resets SIGSEGV handler to SIG_DFL.
This breaks programs that handle and continue after SIGSEGV (namely JVM).
See the test and comments for details.
This is reincarnation of reverted r229678 (http://reviews.llvm.org/D7722).
Changed:
- execute TracerThreadDieCallback only on tracer thread
- reset global data in TracerThreadSignalHandler/TracerThreadDieCallback
- handle EINTR from waitpid
Add 3 new test:
- SIGSEGV during leak checking
- StopTheWorld operation during signal storm from an external process
- StopTheWorld operation when the program generates and handles SIGSEGVs
http://reviews.llvm.org/D8032
llvm-svn: 231367
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D8049
llvm-svn: 231361
|
|
|
|
| |
llvm-svn: 231343
|
|
|
|
|
|
| |
module, instead of dumping a single combined bitset
llvm-svn: 231319
|
|
|
|
|
|
|
| |
Checking files from different repository is not nice, and LLVM code
follows its own style guide anyway.
llvm-svn: 231289
|
|
|
|
|
|
| |
return 0
llvm-svn: 231283
|
|
|
|
| |
llvm-svn: 231174
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fuzzing).
Introduce -mllvm -sanitizer-coverage-8bit-counters=1
which adds imprecise thread-unfriendly 8-bit coverage counters.
The run-time library maps these 8-bit counters to 8-bit bitsets in the same way
AFL (http://lcamtuf.coredump.cx/afl/technical_details.txt) does:
counter values are divided into 8 ranges and based on the counter
value one of the bits in the bitset is set.
The AFL ranges are used here: 1, 2, 3, 4-7, 8-15, 16-31, 32-127, 128+.
These counters provide a search heuristic for single-threaded
coverage-guided fuzzers, we do not expect them to be useful for other purposes.
Depending on the value of -fsanitize-coverage=[123] flag,
these counters will be added to the function entry blocks (=1),
every basic block (=2), or every edge (=3).
Use these counters as an optional search heuristic in the Fuzzer library.
Add a test where this heuristic is critical.
llvm-svn: 231166
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D8029
llvm-svn: 231162
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D8020
llvm-svn: 231061
|
|
|
|
|
|
|
|
| |
interface
Reviewed at http://reviews.llvm.org/D7971
llvm-svn: 231032
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D7867
llvm-svn: 231027
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D7972
llvm-svn: 231014
|
|
|
|
| |
llvm-svn: 230986
|
|
|
|
| |
llvm-svn: 230980
|
|
|
|
|
|
|
|
|
|
|
| |
The problem is that without SA_RESTORER flag, kernel ignores the handler. So tracer actually did not setup any handler.
Add SA_RESTORER flag when setting up handlers.
Add a test that causes SIGSEGV in stoptheworld callback.
Move SignalContext from asan to sanitizer_common to print better diagnostics about signal in the tracer thread.
http://reviews.llvm.org/D8005
llvm-svn: 230978
|
|
|
|
|
|
|
| |
This was causing Chromium's browser_tests to flakily segfault during
leak check.
llvm-svn: 230874
|
|
|
|
|
|
| |
Reviewed at: http://reviews.llvm.org/D7936
llvm-svn: 230842
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D7889
llvm-svn: 230749
|
|
|
|
|
|
|
|
|
|
| |
executable
The ASanified executable could be launched from different locations. When we
cannot find the suppression file relative to the current directory, try to
see if the specified path is relative to the location of the executable.
llvm-svn: 230723
|
|
|
|
| |
llvm-svn: 230721
|
|
|
|
| |
llvm-svn: 230541
|
|
|
|
|
|
| |
Reviewed at http://reviews.llvm.org/D7868
llvm-svn: 230530
|
|
|
|
|
|
|
|
| |
functions
Reviewed at http://reviews.llvm.org/D7869
llvm-svn: 230529
|
|
|
|
|
|
| |
Go build for Windows
llvm-svn: 230507
|
|
|
|
|
|
| |
and __asan_on_error
llvm-svn: 230344
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sanitizers work on ancient kernels and were depending on types existing.
When those types were removed, the sanitizer build broke. See bug
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59009 for more information.
This patch fixes it by isolating the need for those types only when the
feature is actually needed, thus allowing one to compile the kernel with
or without that change, irrespective of its version.
Patch by Christophe Lyon.
llvm-svn: 230324
|
|
|
|
|
|
|
|
|
|
| |
The buildbot failed to build with
error: variable ‘enable_fp’ set but not used [-Werror=unused-but-set-variable]
let's add a `(void)enable_fp;`.
llvm-svn: 230323
|
|
|
|
|
|
|
|
|
|
| |
In debug mode (COMPILER_RT_DEBUG=On), we still build with -fomit-frame-pointer and wrap_ioctl doesn't set up a proper stack frame. In release mode it does, because ioctl_common_pre gets inlined into wrap_ioctl and it uses the COMMON_INTERCEPTOR_READ_RANGE macro which in the end calls GET_CURRENT_FRAME and that forces the compiler to generate a stack frame for the function.
Not having a proper stack frame breaks the unwinder. This patch forces to generate a frame pointer (via ENABLE_FRAME_POINTER macro).
Reviewed at http://reviews.llvm.org/D7815
llvm-svn: 230318
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Revise the fix to https://code.google.com/p/address-sanitizer/issues/detail?id=178:
always disable strict init-order checking the first time dlopen() is
called: at this point shared library is allowed to access globals
defined in the main executable, as they are guaranteed to be
initialized. Revise the test cases:
* simplify init-order-dlopen.cc test case: make it Linux-specific
(there's no strict init-order checking on other platforms anyway),
and single-threaded.
* reinforce init-order-pthread-create.cc test case: make sure that
init-order checker would produce a false positive unless we
turn it off at the moment we call pthread_create().
llvm-svn: 230288
|
|
|
|
|
|
|
|
| |
Also, __syscall form should be used when one or more of the
parameters is a 64-bit argument to ensure that argument alignment
is correct.
llvm-svn: 230183
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SuppressionContext is no longer a singleton, shared by all sanitizers,
but a regular class. Each of ASan, LSan, UBSan and TSan now have their
own SuppressionContext, which only parses suppressions specific to
that sanitizer.
"suppressions" flag is moved away from common flags into tool-specific
flags, so the user now may pass
ASAN_OPTIONS=suppressions=asan_supp.txt LSAN_OPIONS=suppressions=lsan_supp.txt
in a single invocation.
llvm-svn: 230026
|
|
|
|
| |
llvm-svn: 229948
|
|
|
|
|
|
| |
Patch by Laszlo Szekeres
llvm-svn: 229940
|
|
|
|
|
|
|
|
| |
Let each LibIgnore user (for now it's only TSan) manually go
through SuppressionContext and pass ignored library templates to
LibIgnore.
llvm-svn: 229924
|
|
|
|
| |
llvm-svn: 229923
|
|
|
|
|
|
|
|
| |
sanitizer_internal_defs.h to a new sanitizer_interface_internal.h file
Reviewed at http://reviews.llvm.org/D7758
llvm-svn: 229858
|