Commit Graph

833 Commits

Author SHA1 Message Date
Dmitry Vyukov 4e9c091dd7 tsan: allow to obtain code range for a particular module
this is required to ignore interceptors when called from the module

llvm-svn: 191149
2013-09-21 21:41:08 +00:00
Dmitry Vyukov 1da6b4d5c8 tsan: intercept fork syscall
llvm-svn: 191144
2013-09-21 20:59:04 +00:00
Dmitry Vyukov 3d15bcca1d tsan: do not try to use builtin atomic operations
see the comment in code

llvm-svn: 191132
2013-09-21 04:59:02 +00:00
Dmitry Vyukov a182592aa0 tsan: intercept close syscall
llvm-svn: 191129
2013-09-21 03:47:35 +00:00
Alexander Potapenko d1bae72e39 [libsanitizer] Pass an explicit template to mktemp. Running mktemp without a template doesn't work on Darwin.
llvm-svn: 191084
2013-09-20 11:29:44 +00:00
Alexey Samsonov 29d7be1f68 [Sanitizer] Add pthread_cond_init to the list of versioned functions
llvm-svn: 191078
2013-09-20 08:37:57 +00:00
Dmitry Vyukov d78bc3aa11 asan/tsan/msan: use builtin atomic operations when available
this should fix episodic crashes on ARM/PPC
x86_32 is still broken

llvm-svn: 190991
2013-09-19 06:02:56 +00:00
Nick Lewycky 885136d3b6 Check the function we just called for errors, not an incoming argument. Noticed
by inspection.

llvm-svn: 190828
2013-09-17 00:23:28 +00:00
Alexey Samsonov ad7925e0c1 Minor enhancements for sanitizer_common build rules
llvm-svn: 190786
2013-09-16 15:43:23 +00:00
Daniel Jasper 333e0cb055 Revert r190520 as it wasn't the right fix.
llvm-svn: 190524
2013-09-11 12:53:04 +00:00
Daniel Jasper 2b3f143f23 Add empty virtual destructor...
... as this otherwise triggers -Wnon-virtual-dtor.

llvm-svn: 190520
2013-09-11 12:28:15 +00:00
Alexey Samsonov 4a2447fd81 [TSan] Use --whole-archive around TSan runtime in old TSan makefiles. Fix a Go build
llvm-svn: 190513
2013-09-11 11:06:06 +00:00
Alexey Samsonov 279283c064 [Sanitizer] build sanitizer_common library with -Wglobal-constructors
llvm-svn: 190504
2013-09-11 09:57:15 +00:00
Alexey Samsonov d397a9ba1d Fixup for r190410: use lazy initialization for symbolizer as some compilers emit global constructor to setup vptr
llvm-svn: 190414
2013-09-10 16:16:27 +00:00
Alexey Samsonov 7a36e6126b [Sanitizer] Refactor symbolization interface: use class instead of several functions. Move some code around to get rid of extra source files
llvm-svn: 190410
2013-09-10 14:36:16 +00:00
Eli Friedman abc1a5cb9b Delete unused variables.
llvm-svn: 190383
2013-09-10 03:27:07 +00:00
Evgeniy Stepanov cf02f171a9 [sanitizer] Fix PR17138.
strerror_r on OSX returns a positive error code when the errno value is
unknown. Buffer contents are initialized in any case.

llvm-svn: 190295
2013-09-09 08:58:54 +00:00
Evgeniy Stepanov 80cc27857b [sanitizer] Delete extra whitespace.
llvm-svn: 190292
2013-09-09 06:18:07 +00:00
Alexey Samsonov a302a1affc [Sanitizer] Use generic configs for running sanitizer_common unit tests
llvm-svn: 190276
2013-09-08 13:52:07 +00:00
Evgeniy Stepanov 73166796a3 [sanitizer] Avoid including any system headers in the system-header-free part of the runtime library.
llvm-svn: 190161
2013-09-06 15:34:17 +00:00
Evgeniy Stepanov 09d33c67e1 [sanitizer] Fix Android build.
Android actually has "__unused" macro defined in <cdefs.h>.

llvm-svn: 190160
2013-09-06 14:58:49 +00:00
Evgeniy Stepanov 5c1035e7fa [sanitizer] A bunch of linux system call handlers.
llvm-svn: 190157
2013-09-06 14:20:01 +00:00
Alexey Samsonov 16516b9b00 Migrate ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS to new spelling - ATTRIBUTE_NO_SANITIZE_ADDRESS
llvm-svn: 190136
2013-09-06 11:07:33 +00:00
Kostya Serebryany ada5a7b7ef [sanitizer] make the allocator crash instead of returning 0 on huge size (controlled by the allocator_may_return_null flag)
llvm-svn: 190127
2013-09-06 09:25:11 +00:00
Reid Kleckner d483c072af sanitizers: Make sure Visual Studio gets error reports
Visual Studio appears to close stderr before launching a non-console
win32 program.  This means we don't see any sanitizer reports.  If
stderr printing fails, call OutputDebugStringA to get the reports into
the Visual Studio debugger console.

llvm-svn: 190030
2013-09-05 03:19:57 +00:00
Alexey Samsonov 5b2000e4d9 Disable FindPathToBinary test on Android
llvm-svn: 189923
2013-09-04 06:40:48 +00:00
Timur Iskhodzhanov 2eea5894fe [asan] Hopefully un-break the RTL on Windows
llvm-svn: 189821
2013-09-03 15:50:13 +00:00
Timur Iskhodzhanov 8a9f07626f Revert r185536 as it neither fixes any memory leaks, nor is it necessary (see the example from "man pthread_getattr_np")
llvm-svn: 189810
2013-09-03 14:21:21 +00:00
Sergey Matveev b9d34443f2 [lsan] Colorize LSan reports.
llvm-svn: 189804
2013-09-03 13:31:03 +00:00
Alexey Samsonov 5b5c99d219 ASan, LSan, MSan: try to find llvm-symbolizer binary in PATH if it is not provided. Now we don't need to explicitly set the location of llvm-symbolizer in lit test configs.
llvm-svn: 189801
2013-09-03 13:22:51 +00:00
Alexey Samsonov de647ddc8b [Sanitizer] Add the way to find binary in PATH
llvm-svn: 189799
2013-09-03 13:20:48 +00:00
Alexey Samsonov 249c7fb10e Add internal_strchrnul function
llvm-svn: 189797
2013-09-03 13:09:28 +00:00
Alexander Potapenko 94377c337b [libsanitizer] Remove an unused variable introduced in r189789
llvm-svn: 189790
2013-09-03 11:30:07 +00:00
Alexander Potapenko 7e1c51988d [TSan] Move the /proc/self/maps parsing logic to sanitizer_common
Provide a generic way for the tools to generate memory profiles from contents of /proc/self/maps

llvm-svn: 189789
2013-09-03 11:09:16 +00:00
Sergey Matveev 69931c5841 [sanitizer_common] Add internal_clone().
Add a wrapper for the clone syscall for use in StopTheWorld. We
implement it only for x86_64, so stop building StopTheWorld for other platforms
(no one uses it outside x86_64 anyway).

See https://code.google.com/p/address-sanitizer/issues/detail?id=214 for why we
can't use the glibc clone() wrapper.

llvm-svn: 189753
2013-09-02 11:36:19 +00:00
Peter Collingbourne de8e3a097c Conditionalise inclusion of link.h on !SANITIZER_ANDROID.
Hopefully fixes the Android build.

Differential Revision: http://llvm-reviews.chandlerc.com/D1551

llvm-svn: 189696
2013-08-30 20:50:12 +00:00
Will Dietz 1b9b9ec464 Avoid compiler-generated memset by using internal_memset.
Fixes PR17025.

llvm-svn: 189693
2013-08-30 19:53:55 +00:00
Alexey Samsonov 5ffab0959a Minor updates to gen_dynamic_list script suggested by glider
llvm-svn: 189588
2013-08-29 15:45:41 +00:00
Alexey Samsonov 25dc018843 [sanitizer] Parallelize lint checker script
llvm-svn: 189578
2013-08-29 11:35:01 +00:00
Alexey Samsonov 5a2f073926 [sanitizer] Refine CMake rules for generating exported symbols and lint checking
llvm-svn: 189577
2013-08-29 10:49:04 +00:00
Will Dietz f967d1f947 sanitizer_common: Use PYTHON_EXECUTABLE to choose appropriate python.
Fixes build on systems where 'python' is not python2.

llvm-svn: 189486
2013-08-28 15:53:17 +00:00
Alexey Samsonov dd1d1b2c79 Make lint checker script more robust
llvm-svn: 189479
2013-08-28 12:15:03 +00:00
Alexey Samsonov d875c39be6 Check code style in check-sanitizer command
llvm-svn: 189475
2013-08-28 11:27:31 +00:00
Alexey Samsonov ef643ce471 [sanitizer] fix code style
llvm-svn: 189474
2013-08-28 11:26:09 +00:00
Alexey Samsonov acab30e927 Properly generate lists of exported symbols for sanitizer runtimes
This change adds a Python script that is invoked for
the just-built sanitizer runtime to generate the list of exported symbols
passed to the linker. By default, it contains interceptors and sanitizer
interface functions, but can be extended with tool-specific lists.

llvm-svn: 189356
2013-08-27 15:08:02 +00:00
Evgeniy Stepanov a40a058ff1 [sanitizer] Simplify sigaction and sigset_t handling.
llvm-svn: 189338
2013-08-27 11:10:04 +00:00
Hans Wennborg 67c6e5041b cmake: fix the compiler-rt build with MSVC
This sets flags and excludes things that aren't working with MSVC yet,
allowing us to build the ASan runtime as part of the cmake build.

Differential Revision: http://llvm-reviews.chandlerc.com/D1525

llvm-svn: 189304
2013-08-27 01:24:01 +00:00
Sergey Matveev 9e3e80208f [sanitizer] Add a fast version of StackDepotGet() for use in LSan.
Add a class that holds a snapshot of the StackDepot optimized for querying by
ID. This allows us to speed up LSan dramatically.

llvm-svn: 189217
2013-08-26 13:24:43 +00:00
Sergey Matveev ef7db73e11 [sanitizer] Handle Die() in StopTheWorld.
Handle calls to Die() from the tracer thread. Fixes a bug where a CHECK
could fail in the tracer thread, resulting in a call to AsanDie. The tracer
thread then exited and the parent process continued execution despite its
address space being in an unusable state.

llvm-svn: 189216
2013-08-26 13:20:31 +00:00
Alexey Samsonov 903c3250d2 Slightly improve lint checker script and fix a few style issues
llvm-svn: 189092
2013-08-23 07:43:56 +00:00