I was working on the Kaleidoscope tutorial. When I use address sanitizer I get a crash before main
that makes no sense. Anyone know what this is? Without asan it seems to run fine.
None of the stack trace is my code, and I don’t see any references to the DebugCounter or registerCounter in my code either. ??
==78401==ERROR: AddressSanitizer: container-overflow on address 0x6080000010e8 at pc 0x000111983334 bp 0x7ff7b44d02a0 sp 0x7ff7b44cfa60
READ of size 24 at 0x6080000010e8 thread T0
#0 0x111983333 in __asan_memcpy asan_interceptors_memintrinsics.cpp:63
#1 0x10d3ae225 in std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>::basic_string[abi:v170000](std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>&&) string:888
#2 0x10d391dbc in std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>::basic_string[abi:v170000](std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>&&) string:888
#3 0x10d3ab188 in std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>* std::__nik::construct_at[abi:v170000]<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>, std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>, std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*>(std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*, std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>&&) construct_at.h:38
#4 0x10d3aaac0 in void std::__nik::allocator_traits<std::__nik::allocator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>>::construct[abi:v170000]<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>, std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>, void, void>(std::__nik::allocator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>&, std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*, std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>&&) allocator_traits.h:304
#5 0x10d3aa2f4 in std::__nik::reverse_iterator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*> std::__nik::__uninitialized_allocator_move_if_noexcept[abi:v170000]<std::__nik::allocator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>, std::__nik::reverse_iterator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*>, std::__nik::reverse_iterator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*>, std::__nik::reverse_iterator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*>>(std::__nik::allocator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>&, std::__nik::reverse_iterator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*>, std::__nik::reverse_iterator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*>, std::__nik::reverse_iterator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>*>) uninitialized_algorithms.h:615
#6 0x10d3a8a6f in std::__nik::vector<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>, std::__nik::allocator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>>::__swap_out_circular_buffer(std::__nik::__split_buffer<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>, std::__nik::allocator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>&>&) vector:1054
#7 0x10d3a7b53 in void std::__nik::vector<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>, std::__nik::allocator<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>>::__push_back_slow_path<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>> const&>(std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>> const&) vector:1653
#8 0x10c6f2e77 in llvm::UniqueVector<std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>>>::insert(std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>> const&)+0x87 (koalai:x86_64+0x100cc7e77)
#9 0x10c6f2c88 in llvm::DebugCounter::addCounter(std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>> const&, std::__nik::basic_string<char, std::__nik::char_traits<char>, std::__nik::allocator<char>> const&)+0x18 (koalai:x86_64+0x100cc7c88)
#10 0x10c6c1b47 in llvm::DebugCounter::registerCounter(llvm::StringRef, llvm::StringRef)+0xe7 (koalai:x86_64+0x100c96b47)
#11 0x10c6c2950 in _GLOBAL__sub_I_PartiallyInlineLibCalls.cpp+0x20 (koalai:x86_64+0x100c97950)
#12 0x7ff805a7241a in invocation function for block in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const::$_0::operator()() const+0xae (dyld:x86_64+0xfffffffffff8741a)
#13 0x7ff805ab0b69 in invocation function for block in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const+0xf1 (dyld:x86_64+0xfffffffffffc5b69)
#14 0x7ff805aa4f21 in invocation function for block in dyld3::MachOFile::forEachSection(void (dyld3::MachOFile::SectionInfo const&, bool, bool&) block_pointer) const+0x240 (dyld:x86_64+0xfffffffffffb9f21)
#15 0x7ff805a550ae in dyld3::MachOFile::forEachLoadCommand(Diagnostics&, void (load_command const*, bool&) block_pointer) const+0xf4 (dyld:x86_64+0xfffffffffff6a0ae)
#16 0x7ff805aa40be in dyld3::MachOFile::forEachSection(void (dyld3::MachOFile::SectionInfo const&, bool, bool&) block_pointer) const+0xae (dyld:x86_64+0xfffffffffffb90be)
#17 0x7ff805ab0729 in dyld3::MachOAnalyzer::forEachInitializer(Diagnostics&, dyld3::MachOAnalyzer::VMAddrConverter const&, void (unsigned int) block_pointer, void const*) const+0x1d5 (dyld:x86_64+0xfffffffffffc5729)
#18 0x7ff805a6f68b in dyld4::Loader::findAndRunAllInitializers(dyld4::RuntimeState&) const+0xdb (dyld:x86_64+0xfffffffffff8468b)
#19 0x7ff805a6f879 in dyld4::Loader::runInitializersBottomUp(dyld4::RuntimeState&, dyld3::Array<dyld4::Loader const*>&) const+0xb1 (dyld:x86_64+0xfffffffffff84879)
#20 0x7ff805a7248e in dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const::$_1::operator()() const+0x60 (dyld:x86_64+0xfffffffffff8748e)
#21 0x7ff805a6f910 in dyld4::Loader::runInitializersBottomUpPlusUpwardLinks(dyld4::RuntimeState&) const+0x5c (dyld:x86_64+0xfffffffffff84910)
#22 0x7ff805a90cd1 in dyld4::APIs::runAllInitializersForMain()+0x135 (dyld:x86_64+0xfffffffffffa5cd1)
#23 0x7ff805a5a873 in dyld4::prepare(dyld4::APIs&, dyld3::MachOAnalyzer const*)+0xeb0 (dyld:x86_64+0xfffffffffff6f873)
#24 0x7ff805a593bc in start+0x70c (dyld:x86_64+0xfffffffffff6e3bc)