Evgeniy Stepanov
300d29a75d
[asan] Disable __sanitizer_cov_dump registration on Windows.
...
Looks like we can't use atexit() during ASan initialization on Windows.
llvm-svn: 224839
2014-12-25 15:11:00 +00:00
Evgeniy Stepanov
be9a53fec6
[asan] Allow enabling coverage at activation.
...
llvm-svn: 224838
2014-12-25 14:26:45 +00:00
Evgeniy Stepanov
ca9e045570
[sanitizer] Fix off-by-8x in direct coverage.
...
File mapping offset was calculated by offsetting (uptr *) instead of (char *).
llvm-svn: 224821
2014-12-24 13:57:11 +00:00
Kostya Serebryany
9fdeb37bd3
[asan] change the coverage collection scheme so that we can easily emit coverage for the entire process as a single bit set, and if coverage_bitset=1 actually emit that bitset
...
llvm-svn: 224789
2014-12-23 22:32:17 +00:00
Kostya Serebryany
baae9d2df1
[sanitizer] fix a performance regression in sanitizer coverage: move a small perf-critical function to a header. ALso set the coverage guard to 1 before the early return from CoverageData::Add
...
llvm-svn: 224660
2014-12-20 01:45:28 +00:00
Alexey Samsonov
656c29b08f
Replace InternalScopedBuffer<char> with InternalScopedString where applicable.
...
Summary: No functionality change.
Test Plan: make check-all
Reviewers: kcc
Reviewed By: kcc
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D6472
llvm-svn: 223164
2014-12-02 22:20:11 +00:00
Alexey Samsonov
4cc76cb872
[Sanitizer] Bump kMaxPathLength to 4096 and use it more extensively instead of hardcoded constants
...
llvm-svn: 222803
2014-11-26 01:48:39 +00:00
Kostya Serebryany
4cadd4afa0
[asan/coverage] change the way asan coverage instrumentation is done: instead of setting the guard to 1 in the generated code, pass the pointer to guard to __sanitizer_cov and set it there. No user-visible functionality change expected
...
llvm-svn: 222675
2014-11-24 18:49:53 +00:00
Kostya Serebryany
c9d251e4d1
[asan] initial support for experimental basic-block tracing; also add tests for various levels of -fsanitize-coverage
...
llvm-svn: 222291
2014-11-19 00:24:11 +00:00
Kostya Serebryany
183cb6e35d
[asan] add interface function __sanitizer_get_total_unique_coverage; useful for coverage-guided in-process fuzzers
...
llvm-svn: 222060
2014-11-14 23:15:55 +00:00
Alexey Samsonov
4925fd4b05
Fix -Wcast-qual warnings in sanitizers
...
llvm-svn: 221936
2014-11-13 22:40:59 +00:00
Alexey Samsonov
26ca05ad96
[Sanitizer] Get rid of unnecessary allocations in StripModuleName. NFC.
...
llvm-svn: 221287
2014-11-04 19:34:29 +00:00
Kostya Serebryany
40aa4a26d1
[asan] increase the initial buffer size in caller-callee dumper
...
llvm-svn: 220991
2014-10-31 19:49:46 +00:00
Kostya Serebryany
b6eae0c2bc
[asan] run-time part of the caller-callee coverage instrumentation
...
llvm-svn: 220975
2014-10-31 17:19:11 +00:00
Kostya Serebryany
fb5d6852c6
[asan] remove debug print
...
llvm-svn: 217101
2014-09-03 22:58:03 +00:00
Evgeniy Stepanov
dfa5439652
[asan] Fix mmap-ed coverage with coverage=0.
...
llvm-svn: 210655
2014-06-11 15:11:26 +00:00
Evgeniy Stepanov
38c228a842
[asancov] Faster coverage in memory-mapped mode.
...
Use caller pc of __sanitizer_cov_module_init to figure out
when 2 sequential calls are from the same module; skip
.sancov.map file update in this case.
llvm-svn: 210267
2014-06-05 14:38:53 +00:00
Evgeniy Stepanov
fe18102649
[sancov] Handle fork.
...
Reset coverage data on fork().
For memory-mapped mode (coverage_direct=1) this helps avoid loss of data
(before this change two processes would write to the same file simultaneously).
For normal mode, this reduces coverage dump size, because PCs from the parent
process are no longer inherited by the child.
llvm-svn: 210180
2014-06-04 12:13:54 +00:00
Evgeniy Stepanov
ce98452516
[sancov] Delay opening dump file until the first module constructor.
...
llvm-svn: 210109
2014-06-03 15:27:15 +00:00
Evgeniy Stepanov
bb2fc7e4bb
[sancov] Fix map update logic on Android.
...
dlopen()/dlclose() are not interceptable on Android,
so we update .sancov.map in module constructor callbacks.
llvm-svn: 210098
2014-06-03 12:15:43 +00:00
Evgeniy Stepanov
fa5c0750f0
[sanitizer] Add coverage_dir flag.
...
llvm-svn: 209815
2014-05-29 14:33:16 +00:00
Evgeniy Stepanov
567e516015
[asancov] Write coverage directly to a memory-mapped file.
...
This way does not require a __sanitizer_cov_dump() call. That's
important on Android, where apps can be killed at arbitrary time.
We write raw PCs to disk instead of module offsets; we also write
memory layout to a separate file. This increases dump size by the
factor of 2 on 64-bit systems.
llvm-svn: 209653
2014-05-27 12:37:52 +00:00