forked from OSchip/llvm-project
3137c81e56
Some of our existing tests hang on the new Windows bot with this stack: 770, clang_rt.asan_dynamic-i386.dll!__asan::AsanTSDGet+0x3e 771, clang_rt.asan_dynamic-i386.dll!__asan::GetCurrentThread+0x9 772, clang_rt.asan_dynamic-i386.dll!__asan_handle_no_return+0xe 773, clang_rt.asan_dynamic-i386.dll!__asan_wrap__except_handler4_common+0x12 774, ntdll.dll!wcstombs+0xb0 (No unwind info) 775, ntdll.dll!ZwWow64CallFunction64+0x2001 (No unwind info) 776, ntdll.dll!ZwWow64CallFunction64+0x1fd3 (No unwind info) 777, ntdll.dll!KiUserExceptionDispatcher+0xf (No unwind info) 778, clang_rt.asan_dynamic-i386.dll!destroy_fls+0x13 779, ntdll.dll!RtlLockHeap+0xea (No unwind info) 780, ntdll.dll!LdrShutdownProcess+0x7f (No unwind info) 781, ntdll.dll!RtlExitUserProcess+0x81 (No unwind info) 782, kernel32.dll!ExitProcess+0x13 (No unwind info) 783, clang_rt.asan_dynamic-i386.dll!__sanitizer::internal__exit+0xc 784, clang_rt.asan_dynamic-i386.dll!__sanitizer::Die+0x3d 785, clang_rt.asan_dynamic-i386.dll!__asan::AsanInitInternal+0x50b 786, clang_rt.asan_dynamic-i386.dll!__asan::Allocator::Allocate+0x1c 787, clang_rt.asan_dynamic-i386.dll!__asan::Allocator::Calloc+0x43 We hang because AsanDie tries to defend against multi-threaded death by infinite looping if someone is already exiting. We might want to reconsider that, but one easy way to avoid getting here is not to let our noreturn interceptors call back into fragile parts of ASan. llvm-svn: 284067 |
||
---|---|---|
.. | ||
scripts | ||
tests | ||
.clang-format | ||
CMakeLists.txt | ||
README.txt | ||
asan.syms.extra | ||
asan_activation.cc | ||
asan_activation.h | ||
asan_activation_flags.inc | ||
asan_allocator.cc | ||
asan_allocator.h | ||
asan_blacklist.txt | ||
asan_debugging.cc | ||
asan_descriptions.cc | ||
asan_descriptions.h | ||
asan_errors.cc | ||
asan_errors.h | ||
asan_fake_stack.cc | ||
asan_fake_stack.h | ||
asan_flags.cc | ||
asan_flags.h | ||
asan_flags.inc | ||
asan_globals.cc | ||
asan_init_version.h | ||
asan_interceptors.cc | ||
asan_interceptors.h | ||
asan_interface_internal.h | ||
asan_internal.h | ||
asan_linux.cc | ||
asan_lock.h | ||
asan_mac.cc | ||
asan_malloc_linux.cc | ||
asan_malloc_mac.cc | ||
asan_malloc_win.cc | ||
asan_mapping.h | ||
asan_memory_profile.cc | ||
asan_new_delete.cc | ||
asan_poisoning.cc | ||
asan_poisoning.h | ||
asan_posix.cc | ||
asan_preinit.cc | ||
asan_report.cc | ||
asan_report.h | ||
asan_rtl.cc | ||
asan_scariness_score.h | ||
asan_stack.cc | ||
asan_stack.h | ||
asan_stats.cc | ||
asan_stats.h | ||
asan_suppressions.cc | ||
asan_suppressions.h | ||
asan_thread.cc | ||
asan_thread.h | ||
asan_win.cc | ||
asan_win_dll_thunk.cc | ||
asan_win_dynamic_runtime_thunk.cc |
README.txt
AddressSanitizer RT ================================ This directory contains sources of the AddressSanitizer (ASan) runtime library. Directory structure: README.txt : This file. Makefile.mk : File for make-based build. CMakeLists.txt : File for cmake-based build. asan_*.{cc,h} : Sources of the asan runtime library. scripts/* : Helper scripts. tests/* : ASan unit tests. Also ASan runtime needs the following libraries: lib/interception/ : Machinery used to intercept function calls. lib/sanitizer_common/ : Code shared between various sanitizers. ASan runtime currently also embeds part of LeakSanitizer runtime for leak detection (lib/lsan/lsan_common.{cc,h}). ASan runtime can only be built by CMake. You can run ASan tests from the root of your CMake build tree: make check-asan For more instructions see: https://github.com/google/sanitizers/wiki/AddressSanitizerHowToBuild