summaryrefslogtreecommitdiff
path: root/lib/sanitizer_common/sanitizer_stackdepot.h
Commit message (Collapse)AuthorAgeFilesLines
* Change StackDepot interface to use StackTrace more extensivelyAlexey Samsonov2014-10-261-6/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@220637 91177308-0d34-0410-b5e6-96231b3b80d8
* [Sanitizer] Make StackTrace a lightweight reference to array of PCs, andAlexey Samsonov2014-10-261-1/+3
| | | | | | | | | | | | | | | | | | | | | | introduce a BufferedStackTrace class, which owns this array. Summary: This change splits __sanitizer::StackTrace class into a lightweight __sanitizer::StackTrace, which doesn't own array of PCs, and BufferedStackTrace, which owns it. This would allow us to simplify the interface of StackDepot, and eventually merge __sanitizer::StackTrace with __tsan::StackTrace. Test Plan: regression test suite. Reviewers: kcc, dvyukov Reviewed By: dvyukov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D5985 git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@220635 91177308-0d34-0410-b5e6-96231b3b80d8
* [msan] Make origin tracking fork-safe.Evgeniy Stepanov2014-09-041-0/+3
| | | | | | | | | | Chained origins make plain memory stores async-signal-unsafe. We already disable it inside signal handlers. This change grabs all origin-related locks before fork() and releases them after fork() to avoid a deadlock in the child process. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@217140 91177308-0d34-0410-b5e6-96231b3b80d8
* [msan] Chained origins re-design.Evgeniy Stepanov2014-05-211-11/+18
| | | | | | | | | | | | | | | | | | | Generalize StackDepot and create a new specialized instance of it to efficiently (i.e. without duplicating stack trace data) store the origin history tree. This reduces memory usage for chained origins roughly by an order of magnitude. Most importantly, this new design allows us to put two limits on stored history data (exposed in MSAN_OPTIONS) that help avoid exponential growth in used memory on certain workloads. See comments in lib/msan/msan_origin.h for more details. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@209284 91177308-0d34-0410-b5e6-96231b3b80d8
* [sanitizer] fix code styleAlexey Samsonov2013-08-281-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@189474 91177308-0d34-0410-b5e6-96231b3b80d8
* [sanitizer] Add a fast version of StackDepotGet() for use in LSan.Sergey Matveev2013-08-261-0/+26
| | | | | | | Add a class that holds a snapshot of the StackDepot optimized for querying by ID. This allows us to speed up LSan dramatically. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@189217 91177308-0d34-0410-b5e6-96231b3b80d8
* [sanitizer] Further split private and public sanitizer headers.Evgeniy Stepanov2013-01-301-1/+1
| | | | | | | And make msan_interface.h C-compatible. git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@173928 91177308-0d34-0410-b5e6-96231b3b80d8
* [asan] asan_allocator2: by default use the StackDepot to store the stack ↵Kostya Serebryany2012-12-261-0/+7
| | | | | | traces instead of storing them in the redzones git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@171099 91177308-0d34-0410-b5e6-96231b3b80d8
* tsan: use stack depot to describe heap blocksDmitry Vyukov2012-08-301-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@162902 91177308-0d34-0410-b5e6-96231b3b80d8
* asan/tsan: first version of "stack depot"Dmitry Vyukov2012-08-301-0/+29
git-svn-id: https://llvm.org/svn/llvm-project/compiler-rt/trunk@162897 91177308-0d34-0410-b5e6-96231b3b80d8