summaryrefslogtreecommitdiffstats
path: root/compiler-rt/lib/lsan
Commit message (Collapse)AuthorAgeFilesLines
...
* [lsan] Make the report_objects flag more useful.Sergey Matveev2013-12-2418-47/+58
| | | | | | | | Print the list of leaked objects after each leak report. Previously we printed only a joint list of all leaked objects. As a bonus, suppressed objects are no longer reported. llvm-svn: 197977
* [sanitizer] Use the new sanitizer_interception.h header in all interceptors.Evgeniy Stepanov2013-12-201-1/+1
| | | | llvm-svn: 197808
* [Sanitizers] Rename Symbolizer::SymbolizeCode to Symbolizer::SymbolizePCTimur Iskhodzhanov2013-12-181-1/+1
| | | | llvm-svn: 197569
* [lsan] Remove the LSan-specific verbosity flag.Sergey Matveev2013-12-174-24/+11
| | | | | | | | | It conflicted with the verbosity flag we had in common flags. We don't need an LSan-specific flag anyway. Also, shift some logging levels and remove some unnecessary code. llvm-svn: 197512
* [lsan] Introduce print_suppressions flag.Sergey Matveev2013-12-174-8/+48
| | | | | | | | | Introduce a flag to either always or never print matched suppressions. Previously, matched suppressions were printed unconditionally if there were unsuppressed leaks. Also, verbosity=1 no longer has the semantics of "always print suppressions and summary". llvm-svn: 197510
* [Sanitizer] Always initialize a Symbolizer (even if 'symbolize' is false).Alexey Samsonov2013-12-173-9/+8
| | | | | | | | | If 'symbolize' flag is not set, we still want to transform virtual address to module+offset pair in the call to Symbolizer::SymbolizeCode(). See https://code.google.com/p/address-sanitizer/issues/detail?id=251 for more details. llvm-svn: 197491
* [lsan] Introduce __lsan_(un)register_root_region().Sergey Matveev2013-12-173-3/+128
| | | | | | | Add an interface for telling LSan that a region of memory is to be treated as a source of live pointers. Useful for code which stores pointers in mapped memory. llvm-svn: 197489
* [LSan] Add a real test for suppressions file instead of duplicated test case.Alexey Samsonov2013-12-172-10/+1
| | | | llvm-svn: 197488
* [lsan] Make LSan ignore memory poisoned by ASan.Sergey Matveev2013-12-095-0/+49
| | | | | | | | | | | | | | | | Summary: No more (potenital) false negatives due to red zones or fake stack frames. Reviewers: kcc, samsonov Reviewed By: samsonov CC: llvm-commits, samsonov Differential Revision: http://llvm-reviews.chandlerc.com/D2359 llvm-svn: 196778
* tsan: fix flags parsingDmitry Vyukov2013-11-271-2/+2
| | | | | | | | - running_on_valgrind was not parsed in some contexts - refactor code a bit - add comprehensive tests for flags parsing llvm-svn: 195831
* [lsan] Unbreak lsan_testlib.cc.Sergey Matveev2013-11-253-3/+9
| | | | | | Also, add missing logging output. llvm-svn: 195652
* [lsan] Add a missing file.Sergey Matveev2013-11-251-0/+22
| | | | llvm-svn: 195643
* [lsan] Unbreak standalone LSan's initialization by making it more like ASan's.Sergey Matveev2013-11-254-22/+52
| | | | | | | | No longer allow interceptors to be called during initialization, use the preinit array (instead of initializing at the first call to an intercepted function) and adopt the calloc() hack from ASan. llvm-svn: 195642
* [lsan] Use real memset to clear memory in standalone LSan.Sergey Matveev2013-11-241-2/+7
| | | | | | | Performance improvement. Also, the allocator was using CompactSizeClassMap for no good reason, so I switched it to DefaultSizeClassMap. llvm-svn: 195570
* [Sanitizer] Specify a default value for each common runtime flagAlexey Samsonov2013-11-121-4/+1
| | | | llvm-svn: 194479
* [ASan] Add CMake configs for libclang_rt.asan_iossim_dynamic.dylib Alexander Potapenko2013-11-071-4/+6
| | | | | | | | | | CMake changes to build the ASan runtime for the iOS simulator. This is a universal library targeting the same architectures as the OSX ASan runtime does, thus the iossim version can't live in the same universal libclang_rt.asan_osx_dynamic.dylib The difference between the OSX and iossim builds is in the -mios-simulator-version-min and -ios_simulator_version_min flags that tell Clang to compile and link iossim code. The iossim runtime can only be built on a machine with both Xcode and the iOS Simulator SDK installed. If xcodebuild -version -sdk iphonesimulator Path returns a nonempty path, it is used when compiling and linking the iossim runtime. llvm-svn: 194199
* [Sanitizer] Unify summary reporting across all sanitizers.Alexey Samsonov2013-11-0123-30/+28
| | | | | | | | | | This change unifies the summary printing across sanitizers: now each tool uses specific version of ReportErrorSummary() method, which deals with symbolization of the top frame and formatting a summary message. This change modifies the summary line for ASan+LSan mode: now the summary mentions "AddressSanitizer" instead of "LeakSanitizer". llvm-svn: 193864
* Consistently use StackTrace::PrintStack in ASan, LSan and MSanAlexey Samsonov2013-11-011-1/+0
| | | | llvm-svn: 193834
* [Sanitizer] Simplify StackTrace::PrintStack interface: prefer common flags ↵Alexey Samsonov2013-10-291-1/+1
| | | | | | to turn on/off the symbolization llvm-svn: 193587
* Overhaul the symbolizer interface.Peter Collingbourne2013-10-252-4/+5
| | | | | | | | | | | | | | | | | | | | | | This moves away from creating the symbolizer object and initializing the external symbolizer as separate steps. Those steps now always take place together. Sanitizers with a legacy requirement to specify their own symbolizer path should use InitSymbolizer to initialize the symbolizer with the desired path, and GetSymbolizer to access the symbolizer. Sanitizers with no such requirement (e.g. UBSan) can use GetOrInitSymbolizer with no need for initialization. The symbolizer interface has been made thread-safe (as far as I can tell) by protecting its member functions with mutexes. Finally, the symbolizer interface no longer relies on weak externals, the introduction of which was probably a mistake on my part. Differential Revision: http://llvm-reviews.chandlerc.com/D1985 llvm-svn: 193448
* Continue to keep 'SUMMARY: ' prefix in lsan. Whoops!Nick Lewycky2013-10-231-1/+2
| | | | llvm-svn: 193232
* [lsan] When detect_leaks=false, be completely silent.Sergey Matveev2013-10-211-3/+9
| | | | | | | | In particular, don't make a fuss if we're passed a malformed suppressions file, or if we have trouble identifying ld.so. Also, make LSan interface functions no-ops in this case. llvm-svn: 193108
* [lsan] Fix bug when discovering indirectly leaked objects.Sergey Matveev2013-10-152-0/+20
| | | | | | | If an object contains pointers to itself, that doesn't make it indirectly leaked. D'oh! llvm-svn: 192716
* tsan: use verbosity flag in sanitizer_common code directlyDmitry Vyukov2013-10-151-1/+1
| | | | | | now it's available from common_flags() llvm-svn: 192705
* [lsan] Support ASan's stack-use-after-return mode in LSan.Sergey Matveev2013-10-144-0/+35
| | | | | | Treat the fake stack as live memory. llvm-svn: 192593
* [asan] Improve thread lifetime tracking on POSIX systems.Sergey Matveev2013-10-141-0/+45
| | | | | | | | Call AsanThread::Destroy() from a late-running TSD destructor. Previously we called it before any user-registered TSD destructors, which caused false positives in LeakSanitizer. llvm-svn: 192585
* [Sanitizer] Turn GetStackTrace() into StackTrace::Unwind()Alexey Samsonov2013-10-121-3/+3
| | | | llvm-svn: 192533
* [sanitizer] Move the PTHREAD_DESTRUCTOR_ITERATIONS constant to ↵Sergey Matveev2013-10-111-3/+0
| | | | | | | | sanitizer_linux.h. Add a test. llvm-svn: 192442
* Refactor the usage of strip_path_prefix option and make it more consistent ↵Alexey Samsonov2013-10-041-2/+1
| | | | | | across sanitizers llvm-svn: 191943
* [LSan] Rework r191522 - treat allocations with short stack traces as liveAlexey Samsonov2013-09-302-8/+8
| | | | llvm-svn: 191662
* [LSan] Don't report leaks with single-frame stack tracesAlexey Samsonov2013-09-272-2/+48
| | | | llvm-svn: 191522
* [asan] Fix deadlock in stack unwinder on android/x86.Evgeniy Stepanov2013-09-121-2/+3
| | | | | | | Fixes PR17116. Patch by 林作健 (manjian2006 at gmail.com). llvm-svn: 190590
* [Sanitizer] Refactor symbolization interface: use class instead of several ↵Alexey Samsonov2013-09-102-3/+4
| | | | | | functions. Move some code around to get rid of extra source files llvm-svn: 190410
* [lsan] Colorize LSan reports.Sergey Matveev2013-09-031-0/+15
| | | | llvm-svn: 189804
* ASan, LSan, MSan: try to find llvm-symbolizer binary in PATH if it is not ↵Alexey Samsonov2013-09-033-9/+3
| | | | | | provided. Now we don't need to explicitly set the location of llvm-symbolizer in lit test configs. llvm-svn: 189801
* Revert r189347: it breaks on machines w/o installed debug versions of system ↵Alexey Samsonov2013-08-271-1/+0
| | | | | | libraries llvm-svn: 189350
* LSan: Check that dynamic linker library is properly symbolizedAlexey Samsonov2013-08-271-0/+1
| | | | llvm-svn: 189347
* [sanitizer] Add a fast version of StackDepotGet() for use in LSan.Sergey Matveev2013-08-261-5/+15
| | | | | | | 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
* Slightly improve lint checker script and fix a few style issuesAlexey Samsonov2013-08-231-2/+4
| | | | llvm-svn: 189092
* [lsan] Add a regression test for building C code.Sergey Matveev2013-08-224-0/+29
| | | | llvm-svn: 189016
* [lsan] Add a stress test.Sergey Matveev2013-08-221-0/+46
| | | | llvm-svn: 189012
* [lsan] Build standalone LSan with -fno-rtti.Sergey Matveev2013-08-222-2/+3
| | | | | | Fix issue where C code could not be built with -fsanitize=leak. llvm-svn: 189010
* [LSan] Add support for building standalone LSan runtime to Make build ↵Alexey Samsonov2013-08-201-4/+9
| | | | | | (compiler-rt part) llvm-svn: 188804
* Define SANITIZER_INTERFACE_ATTRIBUTE on Windows and fix all the places where ↵Timur Iskhodzhanov2013-08-132-5/+6
| | | | | | SANITIZER_INTERFACE_ATTRIBUTE or SANITIZER_ATTRIBUTE_WEAK are used llvm-svn: 188261
* [tests] Update to use lit_config and lit package, as appropriate.Daniel Dunbar2013-08-096-18/+21
| | | | llvm-svn: 188116
* Enable pipefail for LSan testsAlexey Samsonov2013-08-0719-20/+19
| | | | llvm-svn: 187873
* [lsan] Add leak_check_at_exit flag.Sergey Matveev2013-08-012-1/+22
| | | | | | | | We needed a way to tell LSan to invoke leak checking only if __do_leak_check() is called explicitly. This can now be achieved by setting leak_check_at_exit=false. llvm-svn: 187578
* Disable pipefail for lsan.Rafael Espindola2013-07-261-0/+1
| | | | llvm-svn: 187274
* [lsan] Make __lsan_do_leak_check() honor the detect_leaks flag.Sergey Matveev2013-07-222-2/+4
| | | | | | Also move detect_leaks to common flags. llvm-svn: 186821
* [lsan] Print direct leaks first.Sergey Matveev2013-07-221-3/+6
| | | | | | Direct leaks are higher priority, so it makes sense to have them on top. llvm-svn: 186819
OpenPOWER on IntegriCloud