Kostya Serebryany
48a4023f40
[sanitizer] fix instrumentation with -mllvm -sanitizer-coverage-block-threshold=0 to actually do something useful.
...
llvm-svn: 231736
2015-03-10 01:58:27 +00:00
Kuba Brecka
ae219d3d3c
Symbolizer refactoring: Merge common parts of POSIXSymbolizer and WinSymbolizer
...
Reviewed at http://reviews.llvm.org/D8105
llvm-svn: 231680
2015-03-09 18:36:28 +00:00
Joerg Sonnenberger
ef24b4171d
At least on NetBSD, sys/errno.h and errno.h are different, so use the
...
correct header to get errno.
llvm-svn: 231647
2015-03-09 11:23:29 +00:00
Kuba Brecka
133b615558
Adding sanitizer_symbolizer_win.h to CMakeLists.txt
...
llvm-svn: 231562
2015-03-07 11:04:36 +00:00
Sergey Matveev
4a792988b3
[asan] Allow users of asan_symbolize.py to forbid fallback to atos/addr2line.
...
llvm-svn: 231492
2015-03-06 17:05:28 +00:00
Kuba Brecka
9930aaa9ed
Symbolizer refactoring: Make WinSymbolizer use SymbolizerTool interface
...
Reviewed at http://reviews.llvm.org/D8089
llvm-svn: 231478
2015-03-06 14:33:56 +00:00
Dmitry Vyukov
0fc13a9a82
asan: fix comment formatting
...
As per comments in http://reviews.llvm.org/D8032
llvm-svn: 231457
2015-03-06 08:43:44 +00:00
Kuba Brecka
334f9c4ed8
Print out which symbolizer are we using when verbosity >= 2
...
Reviewed at http://reviews.llvm.org/D8087
llvm-svn: 231428
2015-03-05 23:38:23 +00:00
Kostya Serebryany
769ddaa2d4
[sanitizer] Reconstruct the function that dumps block/edge coverage, hopefully making it more robust. Also increase the allowed coverage size on 32-bit.
...
llvm-svn: 231413
2015-03-05 22:19:25 +00:00
Joerg Sonnenberger
8a1f0446c0
Move use of __builtin_longjmp under the same conditions as the only
...
caller of the function.
llvm-svn: 231402
2015-03-05 20:17:05 +00:00
Dmitry Vyukov
72f169797e
tsan: fix signal handling during stop-the-world
...
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
2015-03-05 14:37:28 +00:00
Kuba Brecka
5c4ce05d6a
Symbolizer refactoring: Link symbolizer tools into a fallback chain
...
Reviewed at http://reviews.llvm.org/D8049
llvm-svn: 231361
2015-03-05 09:47:13 +00:00
Kostya Serebryany
c1d6ab9a1e
[sanitizer] add a run-time flag to dump the coverage counter bitset
...
llvm-svn: 231343
2015-03-05 02:48:51 +00:00
Kostya Serebryany
c89aa6d697
[sanitizer] use simpler symbolizer interface (GetModuleNameForPc) where applicable
...
llvm-svn: 231337
2015-03-05 01:30:36 +00:00
Kostya Serebryany
07aee9c2c6
[sanitizer] when dumping coverage bitset, dump seperate file for every module, instead of dumping a single combined bitset
...
llvm-svn: 231319
2015-03-04 23:41:55 +00:00
Alexey Samsonov
27f4571a5a
[Sanitizer] Fix/suppress compiler warnings in unit tests.
...
llvm-svn: 231293
2015-03-04 21:54:20 +00:00
Alexey Samsonov
00fb6c9da0
Exclude LLVM sources from lint check.
...
Checking files from different repository is not nice, and LLVM code
follows its own style guide anyway.
llvm-svn: 231289
2015-03-04 21:38:10 +00:00
Kostya Serebryany
46e5d5c669
[sanitizer] Since x32 runs under 64-bit kernel, GetKernelAreaSize should return 0
...
llvm-svn: 231283
2015-03-04 20:32:06 +00:00
Kostya Serebryany
4bdf5ada18
[asan] more fixes for x32, patches by H.J. Lu
...
llvm-svn: 231174
2015-03-03 23:46:40 +00:00
Kostya Serebryany
92b8ab502c
[asan] attempting to fix the windows build
...
llvm-svn: 231171
2015-03-03 23:38:24 +00:00
Kostya Serebryany
be5e0ed919
[sanitizer/coverage] Add AFL-style coverage counters (search heuristic for 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
2015-03-03 23:27:02 +00:00
Kuba Brecka
b126894b96
Symbolizer refactoring: Unify access to symbolizer tools from POSIXSymbolizer
...
Reviewed at http://reviews.llvm.org/D8029
llvm-svn: 231162
2015-03-03 23:13:02 +00:00
Kuba Brecka
e87a26c0ed
Symbolizer refactoring: Turn FillAddressAndModuleInfo into FillModuleInfo
...
Reviewed at http://reviews.llvm.org/D8020
llvm-svn: 231061
2015-03-03 09:18:44 +00:00
Kostya Serebryany
3e7825efb5
[asan] Since x32 has 32-bit pointers, it should use the same code sequence as ia32 for AddressSanitizer asm_flags test. Patch by H.J. Lu
...
llvm-svn: 231052
2015-03-03 02:45:21 +00:00
Kuba Brecka
249a9e3a7f
Symbolizer refactoring: Make LibbacktraceSymbolizer adopt the SymbolizerTool interface
...
Reviewed at http://reviews.llvm.org/D7971
llvm-svn: 231032
2015-03-02 22:56:25 +00:00
Kuba Brecka
59e8c3b342
Symbolizer refactoring: ExtractToken and friends
...
Reviewed at http://reviews.llvm.org/D7867
llvm-svn: 231027
2015-03-02 22:15:14 +00:00
Kuba Brecka
898270513d
Symbolizer refactoring: Move internals to separate files
...
Reviewed at http://reviews.llvm.org/D7972
llvm-svn: 231014
2015-03-02 21:15:09 +00:00
Renato Golin
26af9c9024
Allow compiler-rt build on Bitrig
...
This is the only patch Bitrig uses for compiler-rt. It adds support
for Bitrig/arm in the clear cache code.
Patch by Patrick Wildt.
llvm-svn: 231012
2015-03-02 21:02:43 +00:00
Timur Iskhodzhanov
18cfba9fa4
[ASan/Win] Work around PR22545: call LLVM global_dtors in the MD atexit()
...
llvm-svn: 231000
2015-03-02 19:41:09 +00:00
Alexey Samsonov
1be519876d
[Sanitizer] Fix StripPathPrefix function and improve test case.
...
llvm-svn: 230986
2015-03-02 18:55:46 +00:00
Dmitry Vyukov
df01bdca70
asan: fix windows build after commit 230978
...
llvm-svn: 230980
2015-03-02 17:45:18 +00:00
Dmitry Vyukov
b79ac88155
asan: fix signal handling during stoptheworld
...
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
2015-03-02 17:36:02 +00:00
Sergey Matveev
348800b3d9
[asan] Demote "trying to poison/unpoison memory region" messages...
...
... to verbosity level 3. Because log spam.
llvm-svn: 230974
2015-03-02 17:13:38 +00:00
Hans Wennborg
521a941074
Revert r229678 "tsan: fix signal handling during stop-the-world"
...
This was causing Chromium's browser_tests to flakily segfault during
leak check.
llvm-svn: 230874
2015-02-28 22:18:11 +00:00
Kuba Brecka
8f23ce244c
Symbolizer refactoring: SymbolizerTool and better interface
...
Reviewed at: http://reviews.llvm.org/D7936
llvm-svn: 230842
2015-02-28 09:39:05 +00:00
Petar Jovanovic
9ef0d1c145
[MIPS] Add missing header for syscall
...
The syscall function itself is declared in <unistd.h>
Compiling compiler-rt with -Werror-implicit-function-declaration will
cause a build failure. This change fixes it.
Differential Revision: http://reviews.llvm.org/D7949
llvm-svn: 230838
2015-02-28 02:32:55 +00:00
Kuba Brecka
1cd77d4f13
[compiler-rt] Symbolizer refactoring: Abstract SymbolizerProcess better
...
Reviewed at http://reviews.llvm.org/D7889
llvm-svn: 230749
2015-02-27 11:11:05 +00:00
Anna Zaks
2249049db2
[compiler-rt] Allow suppression file to be relative to the location of the 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
2015-02-27 03:12:19 +00:00
Alexey Samsonov
0b0cafc8fc
[Sanitizer] Print column number in SUMMARY line if it's available.
...
llvm-svn: 230721
2015-02-27 02:29:25 +00:00
Alexey Samsonov
a716618927
[CMake] Make sure we built one variant of i386/i686 runtime libraries.
...
llvm-svn: 230683
2015-02-26 21:03:41 +00:00
Evgeniy Stepanov
504f0987fe
[msan] Fix MsanTest to pass in track_origins=2 mode.
...
llvm-svn: 230639
2015-02-26 15:19:33 +00:00
Sergey Matveev
b0caac77dd
[lsan] Fix indent.
...
llvm-svn: 230633
2015-02-26 14:25:25 +00:00
Sergey Matveev
c9b2cd5c8c
LSan: fix a deadlock caused by dl_iterate_phdr().
...
Wrap the StopTheWorld call in a dl_iterate_phdr() callback. This ensures that no
other threads are holding the libdl lock, and we can safely reenter it in the
tracer thread.
llvm-svn: 230631
2015-02-26 14:01:08 +00:00
Kuba Brecka
71b3a69433
Fix >80 line after r230530.
...
llvm-svn: 230541
2015-02-25 20:56:04 +00:00
Kuba Brecka
8f12ce0825
[compiler-rt] Symbolizer refactoring: Move SymbolizerProcess interface to header
...
Reviewed at http://reviews.llvm.org/D7868
llvm-svn: 230530
2015-02-25 19:50:38 +00:00
Kuba Brecka
d831a73b32
[compiler-rt] Symbolizer refactoring: Move string parsing into separate functions
...
Reviewed at http://reviews.llvm.org/D7869
llvm-svn: 230529
2015-02-25 19:35:08 +00:00
Timur Iskhodzhanov
5c3f1c91f2
Address post-commit feedback on r230344: Don't use weak hooks on Sanitizer Go build for Windows
...
llvm-svn: 230507
2015-02-25 17:19:42 +00:00
Timur Iskhodzhanov
40d72d9a1f
Reland r230019 - [ASan] Make the argument of '__sanitizer_annotate_contiguous_container' is not aligned error message easier to understand
...
This incorporates the fix for ARM architecture suggested by Renato Golin.
llvm-svn: 230506
2015-02-25 17:03:34 +00:00
Timur Iskhodzhanov
5c62af5bb1
Reland r230419 - add __asan_default_suppressions() hook with a fix for Windows
...
llvm-svn: 230501
2015-02-25 16:00:26 +00:00
Vasileios Kalintiris
c9c7a3e4e5
InstrProf: Fix warnings for mixed declarations and code. NFC.
...
llvm-svn: 230494
2015-02-25 13:50:18 +00:00