Commit Graph

239 Commits

Author SHA1 Message Date
Bill Wendling f9528843d2 Remove unused variable.
llvm-svn: 169485
2012-12-06 07:43:17 +00:00
Kostya Serebryany 1e3d387459 [tsan] add MmapAlignedOrDie
llvm-svn: 169474
2012-12-06 06:10:31 +00:00
Dmitry Vyukov dd95cd148b tsan: fix lint warnings
llvm-svn: 169369
2012-12-05 10:16:02 +00:00
Kostya Serebryany 571232b8cf [tsan] get rid of *allocator64* files, moving everything to *allocator* files. This will help with the 32-bit allocator implementation and testing
llvm-svn: 169368
2012-12-05 10:09:15 +00:00
Kostya Serebryany 0afbb325b6 [tsan] make the 64-bit allocator build (but not work) in 32-bit mode to simplify the code and test structure and allow further refactoring
llvm-svn: 169361
2012-12-05 07:11:47 +00:00
Alexander Potapenko 0a4e0f6d35 Fix a use-after-unmap bug in /proc/self/maps caching. The cached buffer was occasionally deleted in the MemoryMappingLayout destructor.
llvm-svn: 169335
2012-12-04 23:30:00 +00:00
Kostya Serebryany 7436d95c9c [tsan] test the allocator with CompactSizeClassMap
llvm-svn: 169270
2012-12-04 14:39:51 +00:00
Kostya Serebryany f299288f55 [tsan] minor interface refactoring
llvm-svn: 169267
2012-12-04 14:15:17 +00:00
Kostya Serebryany 5e6f833bdd [tsan] refactor the allocator tests to allow testing other flavours of the allocator (add templates)
llvm-svn: 169264
2012-12-04 13:59:22 +00:00
Kostya Serebryany 077f88045e [tsan] refactoring and comment changes in sanitizer_common/sanitizer_allocator{,64}.h. No functionality change
llvm-svn: 169234
2012-12-04 07:54:41 +00:00
Alexander Potapenko e2b6d08459 Use a struct to hold the /proc/self/maps buffer on Linux.
llvm-svn: 169155
2012-12-03 21:21:22 +00:00
Kostya Serebryany 214b715061 [asan] two more bits for __sparc__
llvm-svn: 169141
2012-12-03 18:39:21 +00:00
Kostya Serebryany 485f7b4a70 [tsan] add CompactSizeClassMap as an alternative (more compact) size class map. Not used yet.
llvm-svn: 169128
2012-12-03 15:00:33 +00:00
Kostya Serebryany dab61684ef [tsan] remove unused InternalAllocBlock as part of larger refactoring
llvm-svn: 169123
2012-12-03 11:57:01 +00:00
Dmitry Vyukov e982a1d368 tsan: describe global vars (module+offset for now)
llvm-svn: 169122
2012-12-03 11:45:34 +00:00
Alexander Potapenko 7811425843 Add caching to the MemoryMappingLayout class on Linux. This is necessary for the cases when a sandbox prevents ASan from reading the mappings
from /proc/self/maps.
The mappings are currently being cached on each access to /proc/self/maps. In the future we'll need to add an API that allows the client to notify ASan about the sandbox.

llvm-svn: 169076
2012-12-01 02:39:45 +00:00
Dmitry Vyukov ad9c530f7c tsan: add sanity checks into memory allocator
llvm-svn: 169015
2012-11-30 17:26:50 +00:00
Dmitry Vyukov e1a7f338a3 tsan: dynamic history size
introduces history_size parameter that can be used to control trace size at startup

llvm-svn: 168786
2012-11-28 12:19:50 +00:00
Dmitry Vyukov 2429b02770 tsan: move traces from tls into dedicated storage at fixed address
helps to reduce tls size (it's weird to have multi-MB tls)
will help with dynamically adjustable trace size

llvm-svn: 168783
2012-11-28 10:35:31 +00:00
Kostya Serebryany df198db1aa [asan/tsan] get rid of kPageSize completely in favor of GetPageSizeCached(). This makes the code friendly to more platforms
llvm-svn: 168537
2012-11-24 05:03:11 +00:00
Kostya Serebryany f22c697f58 [asan] get rid of some of the uses of kPageSize. The intent is to get rid of it completely to support platforms with multiple possible page sizes.
llvm-svn: 168517
2012-11-23 15:38:49 +00:00
Dmitry Vyukov 35437032be tsan: better error message for OOM
llvm-svn: 168491
2012-11-22 08:42:01 +00:00
Kostya Serebryany 8bc5421ba0 [asan] get rid of kPageSizeBits
llvm-svn: 168426
2012-11-21 13:31:07 +00:00
Evgeniy Stepanov 979a1e7352 Allow PopStackFrames leave the stack empty.
llvm-svn: 168425
2012-11-21 13:00:04 +00:00
Kostya Serebryany 734f1eb5f4 [asan/tsan] do not use __WORDSIZE macro, as it is glibc-private thing. Instead, define our own SANITIZER_WORDSIZE
llvm-svn: 168424
2012-11-21 12:38:58 +00:00
Alexey Samsonov 3a3488e4e1 [Sanitizer] replace while with internal_memset to make sure compiler won't replace it with library memset
llvm-svn: 168422
2012-11-21 11:12:57 +00:00
Kostya Serebryany 87e0464bfb [asan] better support for powerpc and sparc targets (thanks to H.J. Liu and David Miller)
llvm-svn: 168358
2012-11-20 08:57:26 +00:00
Kostya Serebryany 46de580003 [asan] more support for powerpc, patch by Peter Bergner
llvm-svn: 168356
2012-11-20 07:00:42 +00:00
Kostya Serebryany 386e2d853b [asan] support x32 mode in the fast stack unwinder. Patch by H.J. Lu
llvm-svn: 168306
2012-11-19 10:31:00 +00:00
Kostya Serebryany cb9f62189b [asan] support PowerPC and SPARC in sanitizer_linux.cc
llvm-svn: 168301
2012-11-19 07:53:36 +00:00
Richard Smith 05dce7e644 -fsanitize=undefined: Switch to using sanitizer_common for output. This gets us much closer to not depending on any system headers.
llvm-svn: 167888
2012-11-13 23:42:05 +00:00
Kostya Serebryany 1f8922cf71 [asan] use #if defined __x86_64__ instead of #if __WORDSIZE == 64 in sanitizer_linux.cc
llvm-svn: 167883
2012-11-13 23:13:17 +00:00
Alexey Samsonov ae9b18b607 [Sanitizer] add sanity checks for communication with external symbolizer
llvm-svn: 167617
2012-11-09 14:45:30 +00:00
Alexey Samsonov c463f3077e [Sanitizer] try to fix Windows bot - include stdlib.h for abort/_exit functions
llvm-svn: 167577
2012-11-08 13:08:41 +00:00
Dmitry Vyukov da78be74f3 tsan: slightly relax requirements for lazy shadow memory (can overlap and may not be properly aligned)
it's problematic on windows where allocation granularity is much larger than page size

llvm-svn: 167466
2012-11-06 16:48:46 +00:00
Dmitry Vyukov e86c632015 tsan: fix debug output
llvm-svn: 167463
2012-11-06 15:54:34 +00:00
Dmitry Vyukov a0be3e2c68 tsan: better diagnostics for failed mmap()
llvm-svn: 167462
2012-11-06 15:39:16 +00:00
Dmitry Vyukov 0ff6d2dd6c tsan: windows: less includes, better diagnostics for failed VirtualAlloc(), implement sched_yield()
llvm-svn: 167452
2012-11-06 13:19:59 +00:00
Dmitry Vyukov 2817639411 tsan: define missing compier macros for windows
llvm-svn: 167450
2012-11-06 12:54:16 +00:00
Dmitry Vyukov e9bafdf5b8 tsan: fix non-msvc windows build
llvm-svn: 167449
2012-11-06 12:50:13 +00:00
Dmitry Vyukov 04dd4b7349 tasn: improve sanitizer_internal_defs.h
The file uses namespaces and extern "LANG", so it's kinda senseless to use #ifdef __cplusplus

llvm-svn: 167448
2012-11-06 12:49:22 +00:00
Dmitry Vyukov e6b5a696e3 tsan: fix windows build
__declspec is not _WIN32, it's _MSC_VER

llvm-svn: 167447
2012-11-06 12:47:42 +00:00
Alexey Samsonov 58358897a3 [Sanitizer] Add internal_isatty to sanitizer_libc and PrintsToTty to determine whether error reports are printed to terminal
llvm-svn: 167298
2012-11-02 15:18:34 +00:00
Alexey Samsonov f7a24c4e2b [Sanitizer] fix printf unittest on 32-bit arch
llvm-svn: 167297
2012-11-02 14:28:17 +00:00
Alexey Samsonov 008274440a [Sanitizer] move unit test for Printf from tsan to sanitizer_common
llvm-svn: 167296
2012-11-02 12:36:11 +00:00
Alexey Samsonov ad9d65feb8 [TSan] finally remove TsanPrintf in favor of Printf from sanitizer_common
llvm-svn: 167294
2012-11-02 12:17:51 +00:00
Alexey Samsonov 20ba98fdb1 [Sanitizer] Use kStderrFd constant instead of hardcoded 2
llvm-svn: 167291
2012-11-02 09:38:47 +00:00
Alexey Samsonov fd67c83e7e [Sanitizer]: add __sanitizer_set_report_fd function to alter file descriptor for error reports
llvm-svn: 167290
2012-11-02 09:23:36 +00:00
Alexander Potapenko dda4f0b593 Fix a compiler warning in internal_memmove.
llvm-svn: 166775
2012-10-26 13:47:36 +00:00
Alexander Potapenko 2a1925852d Fix the internal_memmove() implementation that used to skip src[0] if dst < src.
llvm-svn: 166774
2012-10-26 13:24:20 +00:00