Kostya Serebryany
4d45b9b784
[asan] added tests for asan-initialization-order, patch by Reid Watson
...
llvm-svn: 163207
2012-09-05 09:07:02 +00:00
Alexey Samsonov
d83ccd067d
[ASan] hoist more compile flags to SANITIZER_COMMON_CFLAGS var and add the rest of flags/defs from old Makefile to CMake
...
llvm-svn: 163204
2012-09-05 09:00:03 +00:00
Alexey Samsonov
ceffb021c5
[Sanitizer] Remove implicit conversion of InternalScopedBuffer<T> to T*
...
llvm-svn: 163197
2012-09-05 07:23:44 +00:00
Alexey Samsonov
6f696f4d17
[Sanitizer] Support for reading inlined frames from llvm-symbolizer
...
llvm-svn: 163140
2012-09-04 15:34:43 +00:00
Dmitry Vyukov
179e5ddae1
tsan: fix windows build (2)
...
llvm-svn: 162997
2012-08-31 14:11:33 +00:00
Dmitry Vyukov
fa90fa357e
tsan: fix windows build (1)
...
llvm-svn: 162996
2012-08-31 14:01:33 +00:00
Dmitry Vyukov
ef8d1944b8
tsan: improve stack depot
...
llvm-svn: 162993
2012-08-31 12:47:44 +00:00
Kostya Serebryany
d19c8cb2cc
[tsan] locate the auxilary space for tsan's Allocator64 after the main region, not before. This simplifies the shadow mappings
...
llvm-svn: 162991
2012-08-31 12:41:00 +00:00
Alexey Samsonov
3222dad6e3
[Sanitizer] fix overloaded operator error
...
llvm-svn: 162990
2012-08-31 11:43:01 +00:00
Alexey Samsonov
704f71616d
[compiler-rt] Move draft code for llvm-symbolizer to compiler-rt/utils/llvm-symbolizer after chandlerc's suggestion
...
llvm-svn: 162988
2012-08-31 11:12:10 +00:00
Alexey Samsonov
e70ed73d1f
[Sanitizer] Remove some calls to libc malloc from symbolizer
...
llvm-svn: 162987
2012-08-31 11:07:52 +00:00
Alexey Samsonov
329eae86ef
[Sanitizer] Resolve fixme: break dependency of sanitizer_common tests on TSan RTL
...
llvm-svn: 162984
2012-08-31 10:15:44 +00:00
Alexey Samsonov
79b36285ca
[Sanitizer] Make lint checking a standalone script in sanitizer_common
...
llvm-svn: 162982
2012-08-31 08:36:36 +00:00
Dmitry Vyukov
b244c46c66
tsan: speed up allocator64 GetBlockBegin()
...
llvm-svn: 162908
2012-08-30 13:55:43 +00:00
Dmitry Vyukov
191f2f7cdb
tsan: use stack depot to describe heap blocks
...
llvm-svn: 162902
2012-08-30 13:02:30 +00:00
Dmitry Vyukov
f4792878c4
asan/tsan: first version of "stack depot"
...
llvm-svn: 162897
2012-08-30 10:02:48 +00:00
Kostya Serebryany
d0d96bfb86
[asan/tsan] use InternalScopedBuffer instead of stack arrays. Use mmap inseted of InternalAlloc in InternalScopedBuffer
...
llvm-svn: 162834
2012-08-29 08:40:36 +00:00
Chandler Carruth
1aa4fef601
Relocate the external headers provided by ASan and the common sanitizer
...
library.
These headers are intended to be available to user code when built with
AddressSanitizer (or one of the other sanitizer's in the future) to
interface with the runtime library. As such, they form stable external
C interfaces, and the headers shouldn't be located within the
implementation.
I've pulled them out into what seem like fairly obvious locations and
names, but I'm wide open to further bikeshedding of these names and
locations.
I've updated the code and the build system to cope with the new
locations, both CMake and Makefile. Please let me know if this breaks
anyone's build.
The eventual goal is to install these headers along side the Clang
builtin headers when we build the ASan runtime and install it. My
current thinking is to locate them at:
<prefix>/lib/clang/X.Y/include/sanitizer/common_interface_defs.h
<prefix>/lib/clang/X.Y/include/sanitizer/asan_interface.h
<prefix>/lib/clang/X.Y/include/sanitizer/...
But maybe others have different suggestions?
Fixing the style of the #include between these headers at least unblocks
experimentation with installing them as they now should work when
installed in these locations.
llvm-svn: 162822
2012-08-29 02:27:54 +00:00
Chandler Carruth
c1c9d5818f
Some flag cleanup for the sanitizer runtimes.
...
This hoists most of the CFLAGS into a common variable. It also adds
detection for -Wno-c99-extensions and uses it to silence a pile of
warnings.
Finally, it switches to the proper flag -rdynamic.
With this, the cmake build is warning free on my bootstrap Linux build.
llvm-svn: 162809
2012-08-29 00:13:11 +00:00
Kostya Serebryany
66a37f3aef
[asan] one more fix for windows build
...
llvm-svn: 162762
2012-08-28 15:25:07 +00:00
Kostya Serebryany
3a6af66a0e
[asan] fix the cmake build (hopefully)
...
llvm-svn: 162760
2012-08-28 14:48:28 +00:00
Kostya Serebryany
327d0a5666
[asan] actually doing 'svn add' helps
...
llvm-svn: 162759
2012-08-28 14:27:06 +00:00
Kostya Serebryany
7575968aa4
[asan] actually move StackTrace to sanitizer_common
...
llvm-svn: 162757
2012-08-28 14:11:57 +00:00
Kostya Serebryany
ccc470c499
[asan] some renaming before we move StackTrace into sanitizer_common (part 2)
...
llvm-svn: 162748
2012-08-28 11:54:51 +00:00
Kostya Serebryany
bb6f165952
[asan] get rid of AsanPrintf in favor of Printf from sanitizer_common
...
llvm-svn: 162746
2012-08-28 11:34:40 +00:00
Alexey Samsonov
384de7c9c9
[Sanitizer] Allow to create stub MemoryMappingLayout on Windows
...
llvm-svn: 162742
2012-08-28 08:27:08 +00:00
Alexey Samsonov
cae486c063
[Sanitizer] One more method stub for Windows
...
llvm-svn: 162739
2012-08-28 07:22:24 +00:00
Alexey Samsonov
d1d1a814b7
[Sanitizer] align allocation sizes in low level allocator
...
llvm-svn: 162676
2012-08-27 14:51:36 +00:00
Evgeniy Stepanov
f72f08affc
CMake build rules for ASan/Android runtime.
...
llvm-svn: 162675
2012-08-27 14:28:27 +00:00
Alexey Samsonov
28d8be2d86
[Sanitizer] One more try to fix Windows build
...
llvm-svn: 162674
2012-08-27 14:08:53 +00:00
Alexey Samsonov
e67a5dd8e1
[Sanitizer] Use low-level allocator in flag parsing to avoid calling malloc() before ASan/TSan initialization is done
...
llvm-svn: 162673
2012-08-27 14:04:54 +00:00
Alexey Samsonov
cc62211fbf
[Sanitizer] Rename ProcessMaps to MemoryMappingLayout and fix Windows build by providing stub implementation
...
llvm-svn: 162671
2012-08-27 13:48:48 +00:00
Evgeniy Stepanov
be01398612
A few tweaks for building ASanRT against Android NDK.
...
llvm-svn: 162666
2012-08-27 11:15:55 +00:00
Alexey Samsonov
dc8d1f1039
[Sanitizer] move low-level (mmap-based) allocator to sanitizer_common
...
llvm-svn: 162663
2012-08-27 09:30:58 +00:00
Dmitry Vyukov
7d3d94454c
tsan: improve memory allocator a bit
...
llvm-svn: 162561
2012-08-24 15:53:14 +00:00
Dmitry Vyukov
7e6347402d
tsan: fix new memory allocator
...
Deallocate: drain blocks to central cache if cached too much (instead of never drain).
Allocate: batch allocate fixed amount of blocks (instead of all blocks).
This significantly reduces memory consumption of large heavy-multithreaded programs.
llvm-svn: 162447
2012-08-23 17:16:07 +00:00
Alexey Samsonov
563fb4113c
[Sanitizer] Add external symbolizer binary. Next steps - include it in CMake build (produce 32-bit and 64-bit version of it, make sure we can compile LLVM sources with our own flags) and add tests for it.
...
llvm-svn: 162442
2012-08-23 12:39:35 +00:00
Alexey Samsonov
419f610a74
[Sanitizer] Switch the symbolization strategy that would be used by sanitizer tools family: as compiling in-process symbolizer into runtime involves certain difficulties, we may instead launch an external symbolizer program (fork + execl) in a subprocess and communicate with it via pipe.
...
llvm-svn: 162437
2012-08-23 07:32:06 +00:00
Alexey Samsonov
75e5fc3e57
[TSan] switch tsan to using InternalScopedBuffer from sanitizer_common
...
llvm-svn: 162351
2012-08-22 07:25:52 +00:00
Alexey Samsonov
b92488a549
[Sanitizer] implement internal_strcspn
...
llvm-svn: 162272
2012-08-21 09:26:26 +00:00
Alexey Samsonov
e6704ee109
[Sanitizer] define InternalScopedBuffer to replace large arrays on stack. It is defined analogous to similar class in tsan and should replace it.
...
llvm-svn: 162262
2012-08-21 08:13:37 +00:00
Dmitry Vyukov
1c0b3c6b84
tsan: store sync objects in memory block headers + delete them when the block is freed
...
llvm-svn: 161959
2012-08-15 17:27:20 +00:00
Dmitry Vyukov
4b5ec3145a
tsan: add some more tests for memory allocator
...
llvm-svn: 161950
2012-08-15 14:25:33 +00:00
Dmitry Vyukov
c693689bb1
tsan: fix several integer overflows
...
llvm-svn: 161949
2012-08-15 14:25:08 +00:00
Kostya Serebryany
ad855e9438
[asan] better diagnostics for mmap failure
...
llvm-svn: 161874
2012-08-14 15:18:40 +00:00
Alexey Samsonov
ef7758f561
[Sanitizer] move OS-dependent pieces of symbolizer to separate source files
...
llvm-svn: 161862
2012-08-14 13:00:32 +00:00
Alexey Samsonov
d33973edb4
[Sanitizer] Return cmake support for setting compile definitions for sanitizer_common library
...
llvm-svn: 161747
2012-08-13 07:41:43 +00:00
Alexey Samsonov
fb844c7eff
[ASan] CMake support for building ASan runtime as a universal binary on Mac
...
llvm-svn: 161665
2012-08-10 14:45:52 +00:00
Alexey Samsonov
4750230ac6
[Sanitizer] cleanup CMake files for interception and sanitizer_common helper libraries
...
llvm-svn: 161485
2012-08-08 09:46:51 +00:00
Alexey Samsonov
ce8d497aaf
[Sanitizer] Fix warnings to please cmake build
...
llvm-svn: 161166
2012-08-02 10:09:31 +00:00