rupprecht added a comment. In D131437#3751366 <https://reviews.llvm.org/D131437#3751366>, @bkramer wrote:
> This seems to trigger a use after free in `lldb-api :: > functionalities/thread/create_after_attach/TestCreateAfterAttach.py` > > asan log: > > ==4741==ERROR: AddressSanitizer: heap-use-after-free on address > 0x62f00023bf58 at pc 0x563639db88f1 bp 0x7ffd942412f0 sp 0x7ffd942412e8 > READ of size 4 at 0x62f00023bf58 thread T0 > #0 0x563639db88f0 in HasChildren > lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h:124:37 > #1 0x563639db88f0 in GetFirstChild > lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h:148:12 > #2 0x563639db88f0 in GetFirstChild > lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp:101:34 > #3 0x563639db88f0 in child_iterator > lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.h:107:57 > #4 0x563639db88f0 in DWARFDIE::children() const > lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp:466:27 > #5 0x563639d9f4e1 in > DWARFASTParserClang::EnsureAllDIEsInDeclContextHaveBeenParsed(lldb_private::CompilerDeclContext) > lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp:2203:37 > #6 0x563639f1ab62 in > lldb_private::TypeSystemClang::DeclContextFindDeclByName(void*, > lldb_private::ConstString, bool) > lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp:9494:22 > #7 0x563639f489fd in > lldb_private::CompilerDeclContext::FindDeclByName(lldb_private::ConstString, > bool) lldb/source/Symbol/CompilerDeclContext.cpp:20:27 > #8 0x563639b6113c in > lldb_private::ClangExpressionDeclMap::LookupLocalVariable(lldb_private::NameSearchContext&, > lldb_private::ConstString, lldb_private::SymbolContext&, > lldb_private::CompilerDeclContext const&) > lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:1084:20 > #9 0x563639b5d7cf in > lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(lldb_private::NameSearchContext&, > std::__u::shared_ptr<lldb_private::Module>, > lldb_private::CompilerDeclContext const&) > lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:1434:9 > #10 0x563639b5c9df in > lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(lldb_private::NameSearchContext&) > lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:728:5 > #11 0x563639b3df83 in > lldb_private::ClangASTSource::FindExternalVisibleDeclsByName(clang::DeclContext > const*, clang::DeclarationName) > lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp:180:3 > #12 0x56363d02aa30 in > clang::DeclContext::lookup(clang::DeclarationName) const > clang/lib/AST/DeclBase.cpp:1706:17 > #13 0x56363c2bca5b in LookupDirect(clang::Sema&, clang::LookupResult&, > clang::DeclContext const*) clang/lib/Sema/SemaLookup.cpp:1108:39 > #14 0x56363c2b67f5 in CppNamespaceLookup(clang::Sema&, > clang::LookupResult&, clang::ASTContext&, clang::DeclContext*, (anonymous > namespace)::UnqualUsingDirectiveSet&) clang/lib/Sema/SemaLookup.cpp:1207:16 > #15 0x56363c2b5a1e in clang::Sema::CppLookupName(clang::LookupResult&, > clang::Scope*) clang/lib/Sema/SemaLookup.cpp:1495:15 > #16 0x56363c2bc0f2 in clang::Sema::LookupName(clang::LookupResult&, > clang::Scope*, bool, bool) clang/lib/Sema/SemaLookup.cpp:2259:9 > #17 0x56363bdb50b8 in clang::Sema::BuildUsingDeclaration(clang::Scope*, > clang::AccessSpecifier, clang::SourceLocation, bool, clang::SourceLocation, > clang::CXXScopeSpec&, clang::DeclarationNameInfo, clang::SourceLocation, > clang::ParsedAttributesView const&, bool, bool) > clang/lib/Sema/SemaDeclCXX.cpp:12329:5 > #18 0x56363bdb49f3 in clang::Sema::ActOnUsingDeclaration(clang::Scope*, > clang::AccessSpecifier, clang::SourceLocation, clang::SourceLocation, > clang::CXXScopeSpec&, clang::UnqualifiedId&, clang::SourceLocation, > clang::ParsedAttributesView const&) clang/lib/Sema/SemaDeclCXX.cpp:11833:7 > #19 0x56363b49df12 in > clang::Parser::ParseUsingDeclaration(clang::DeclaratorContext, > clang::Parser::ParsedTemplateInfo const&, clang::SourceLocation, > clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) > clang/lib/Parse/ParseDeclCXX.cpp:803:26 > #20 0x56363b49c27d in > clang::Parser::ParseUsingDirectiveOrDeclaration(clang::DeclaratorContext, > clang::Parser::ParsedTemplateInfo const&, clang::SourceLocation&, > clang::ParsedAttributes&) clang/lib/Parse/ParseDeclCXX.cpp:512:10 > #21 0x56363b46c161 in > clang::Parser::ParseDeclaration(clang::DeclaratorContext, > clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, > clang::SourceLocation*) clang/lib/Parse/ParseDecl.cpp:1797:12 > #22 0x56363b55fb99 in > clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, > 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, > clang::ParsedAttributes&, clang::ParsedAttributes&) > clang/lib/Parse/ParseStmt.cpp:247:16 > #23 0x56363b55cfb6 in > clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, > 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) > clang/lib/Parse/ParseStmt.cpp:115:20 > #24 0x56363b56c048 in clang::Parser::ParseCompoundStatementBody(bool) > clang/lib/Parse/ParseStmt.cpp:1171:11 > #25 0x56363b56e32d in > clang::Parser::ParseFunctionStatementBody(clang::Decl*, > clang::Parser::ParseScope&) clang/lib/Parse/ParseStmt.cpp:2442:21 > #26 0x56363b5988a8 in > clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, > clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) > clang/lib/Parse/Parser.cpp:1428:10 > #27 0x56363b47493a in > clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, > clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, > clang::Parser::ForRangeInit*) clang/lib/Parse/ParseDecl.cpp:2117:27 > #28 0x56363b5971c9 in > clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, > clang::ParsingDeclSpec&, clang::AccessSpecifier) > clang/lib/Parse/Parser.cpp:1179:10 > #29 0x56363b596633 in > clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, > clang::ParsingDeclSpec*, clang::AccessSpecifier) > clang/lib/Parse/Parser.cpp:1193:12 > #30 0x56363b594dbc in > clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, > clang::ParsingDeclSpec*) clang/lib/Parse/Parser.cpp:1019:12 > #31 0x56363b592079 in > clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, > clang::Sema::ModuleImportState&) clang/lib/Parse/Parser.cpp:737:12 > #32 0x56363b453bbe in clang::ParseAST(clang::Sema&, bool, bool) > clang/lib/Parse/ParseAST.cpp:162:20 > #33 0x563639b7608c in > lldb_private::ClangExpressionParser::ParseInternal(lldb_private::DiagnosticManager&, > clang::CodeCompleteConsumer*, unsigned int, unsigned int) > lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp:1176:5 > #34 0x563639b9e617 in > lldb_private::ClangUserExpression::TryParse(lldb_private::DiagnosticManager&, > lldb_private::ExecutionContextScope*, lldb_private::ExecutionContext&, > lldb_private::ExecutionPolicy, bool, bool) > lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp:580:35 > #35 0x563639b9ecff in > lldb_private::ClangUserExpression::Parse(lldb_private::DiagnosticManager&, > lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool) > lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp:679:24 > #36 0x563639aa5039 in > lldb_private::UserExpression::Evaluate(lldb_private::ExecutionContext&, > lldb_private::EvaluateExpressionOptions const&, llvm::StringRef, > llvm::StringRef, std::__u::shared_ptr<lldb_private::ValueObject>&, > lldb_private::Status&, std::__u::basic_string<char, > std::__u::char_traits<char>, std::__u::allocator<char>>*, > lldb_private::ValueObject*) lldb/source/Expression/UserExpression.cpp:271:27 > #37 0x56363a090e07 in > lldb_private::Target::EvaluateExpression(llvm::StringRef, > lldb_private::ExecutionContextScope*, > std::__u::shared_ptr<lldb_private::ValueObject>&, > lldb_private::EvaluateExpressionOptions const&, std::__u::basic_string<char, > std::__u::char_traits<char>, std::__u::allocator<char>>*, > lldb_private::ValueObject*) lldb/source/Target/Target.cpp:2520:25 > #38 0x56363980c17d in > lldb_private::CommandObjectExpression::EvaluateExpression(llvm::StringRef, > lldb_private::Stream&, lldb_private::Stream&, > lldb_private::CommandReturnObject&) > lldb/source/Commands/CommandObjectExpression.cpp:402:38 > #39 0x56363980d703 in > lldb_private::CommandObjectExpression::DoExecute(llvm::StringRef, > lldb_private::CommandReturnObject&) > lldb/source/Commands/CommandObjectExpression.cpp:626:7 > #40 0x563639ad9301 in lldb_private::CommandObjectRaw::Execute(char > const*, lldb_private::CommandReturnObject&) > lldb/source/Interpreter/CommandObject.cpp:769:17 > #41 0x563639ac357c in > lldb_private::CommandInterpreter::HandleCommand(char const*, > lldb_private::LazyBool, lldb_private::CommandReturnObject&) > lldb/source/Interpreter/CommandInterpreter.cpp:1988:14 > > 0x62f00023bf58 is located 47960 bytes inside of 53152-byte region > [0x62f000230400,0x62f00023d3a0) > freed by thread T0 here: > #0 0x563639384022 in operator delete(void*, unsigned long) > compiler-rt/lib/asan/asan_new_delete.cpp:164:3 > #1 0x563639ddb422 in __libcpp_operator_delete<void *, unsigned long> > include/c++/v1/new:256:3 > #2 0x563639ddb422 in __do_deallocate_handle_size<> > include/c++/v1/new:282:10 > #3 0x563639ddb422 in __libcpp_deallocate include/c++/v1/new:296:14 > #4 0x563639ddb422 in deallocate > include/c++/v1/__memory/allocator.h:128:13 > #5 0x563639ddb422 in deallocate > include/c++/v1/__memory/allocator_traits.h:282:13 > #6 0x563639ddb422 in ~__split_buffer include/c++/v1/__split_buffer:355:9 > #7 0x563639ddb422 in std::__u::vector<DWARFDebugInfoEntry, > std::__u::allocator<DWARFDebugInfoEntry>>::shrink_to_fit() > include/c++/v1/vector:1525:5 > #8 0x563639dd4f07 in DWARFUnit::ClearDIEsRWLocked() > lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:599:15 > #9 0x563639dd4e6a in DWARFUnit::ScopedExtractDIEs::~ScopedExtractDIEs() > lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp:183:9 > #10 0x563639df0f2c in reset llvm/include/llvm/ADT/Optional.h:88:12 > #11 0x563639df0f2c in ~OptionalStorage > llvm/include/llvm/ADT/Optional.h:67:24 > #12 0x563639df0f2c in ~Optional llvm/include/llvm/ADT/APInt.h:33:29 > #13 0x563639df0f2c in destroy include/c++/v1/__memory/allocator.h:170:15 > #14 0x563639df0f2c in > destroy<llvm::Optional<DWARFUnit::ScopedExtractDIEs>, void> > include/c++/v1/__memory/allocator_traits.h:309:13 > #15 0x563639df0f2c in __base_destruct_at_end include/c++/v1/vector:833:9 > #16 0x563639df0f2c in __clear include/c++/v1/vector:827:29 > #17 0x563639df0f2c in > std::__u::vector<llvm::Optional<DWARFUnit::ScopedExtractDIEs>, > std::__u::allocator<llvm::Optional<DWARFUnit::ScopedExtractDIEs>>>::~vector() > include/c++/v1/vector:436:9 > #18 0x563639debf7d in lldb_private::ManualDWARFIndex::Index() > lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp:137:1 > #19 0x563639dedbf3 in > lldb_private::ManualDWARFIndex::GetGlobalVariables(DWARFUnit&, > llvm::function_ref<bool (DWARFDIE)>) > lldb/source/Plugins/SymbolFile/DWARF/ManualDWARFIndex.cpp:390:3 > #20 0x563639e12633 in > SymbolFileDWARF::ParseVariablesForContext(lldb_private::SymbolContext const&) > lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:3131:18 > #21 0x563639f44425 in lldb_private::CompileUnit::GetVariableList(bool) > lldb/source/Symbol/CompileUnit.cpp:213:36 > #22 0x56363a04799f in > lldb_private::StackFrame::GetInScopeVariableList(bool, bool) > lldb/source/Target/StackFrame.cpp:487:25 > #23 0x563639b6100e in > lldb_private::ClangExpressionDeclMap::LookupLocalVariable(lldb_private::NameSearchContext&, > lldb_private::ConstString, lldb_private::SymbolContext&, > lldb_private::CompilerDeclContext const&) > lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:1076:32 > #24 0x563639b5d7cf in > lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(lldb_private::NameSearchContext&, > std::__u::shared_ptr<lldb_private::Module>, > lldb_private::CompilerDeclContext const&) > lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:1434:9 > #25 0x563639b5c9df in > lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(lldb_private::NameSearchContext&) > lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp:728:5 > #26 0x563639b3df83 in > lldb_private::ClangASTSource::FindExternalVisibleDeclsByName(clang::DeclContext > const*, clang::DeclarationName) > lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp:180:3 > #27 0x56363d02aa30 in > clang::DeclContext::lookup(clang::DeclarationName) const > clang/lib/AST/DeclBase.cpp:1706:17 > #28 0x56363c2bca5b in LookupDirect(clang::Sema&, clang::LookupResult&, > clang::DeclContext const*) clang/lib/Sema/SemaLookup.cpp:1108:39 > #29 0x56363c2b67f5 in CppNamespaceLookup(clang::Sema&, > clang::LookupResult&, clang::ASTContext&, clang::DeclContext*, (anonymous > namespace)::UnqualUsingDirectiveSet&) clang/lib/Sema/SemaLookup.cpp:1207:16 > #30 0x56363c2b5a1e in clang::Sema::CppLookupName(clang::LookupResult&, > clang::Scope*) clang/lib/Sema/SemaLookup.cpp:1495:15 > #31 0x56363c2bc0f2 in clang::Sema::LookupName(clang::LookupResult&, > clang::Scope*, bool, bool) clang/lib/Sema/SemaLookup.cpp:2259:9 > #32 0x56363bdb50b8 in clang::Sema::BuildUsingDeclaration(clang::Scope*, > clang::AccessSpecifier, clang::SourceLocation, bool, clang::SourceLocation, > clang::CXXScopeSpec&, clang::DeclarationNameInfo, clang::SourceLocation, > clang::ParsedAttributesView const&, bool, bool) > clang/lib/Sema/SemaDeclCXX.cpp:12329:5 > #33 0x56363bdb49f3 in clang::Sema::ActOnUsingDeclaration(clang::Scope*, > clang::AccessSpecifier, clang::SourceLocation, clang::SourceLocation, > clang::CXXScopeSpec&, clang::UnqualifiedId&, clang::SourceLocation, > clang::ParsedAttributesView const&) clang/lib/Sema/SemaDeclCXX.cpp:11833:7 > #34 0x56363b49df12 in > clang::Parser::ParseUsingDeclaration(clang::DeclaratorContext, > clang::Parser::ParsedTemplateInfo const&, clang::SourceLocation, > clang::SourceLocation&, clang::ParsedAttributes&, clang::AccessSpecifier) > clang/lib/Parse/ParseDeclCXX.cpp:803:26 > #35 0x56363b49c27d in > clang::Parser::ParseUsingDirectiveOrDeclaration(clang::DeclaratorContext, > clang::Parser::ParsedTemplateInfo const&, clang::SourceLocation&, > clang::ParsedAttributes&) clang/lib/Parse/ParseDeclCXX.cpp:512:10 > #36 0x56363b46c161 in > clang::Parser::ParseDeclaration(clang::DeclaratorContext, > clang::SourceLocation&, clang::ParsedAttributes&, clang::ParsedAttributes&, > clang::SourceLocation*) clang/lib/Parse/ParseDecl.cpp:1797:12 > #37 0x56363b55fb99 in > clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, > 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, > clang::ParsedAttributes&, clang::ParsedAttributes&) > clang/lib/Parse/ParseStmt.cpp:247:16 > #38 0x56363b55cfb6 in > clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, > 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) > clang/lib/Parse/ParseStmt.cpp:115:20 > #39 0x56363b56c048 in clang::Parser::ParseCompoundStatementBody(bool) > clang/lib/Parse/ParseStmt.cpp:1171:11 > #40 0x56363b56e32d in > clang::Parser::ParseFunctionStatementBody(clang::Decl*, > clang::Parser::ParseScope&) clang/lib/Parse/ParseStmt.cpp:2442:21 > #41 0x56363b5988a8 in > clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, > clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) > clang/lib/Parse/Parser.cpp:1428:10 > #42 0x56363b47493a in > clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, > clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, > clang::Parser::ForRangeInit*) clang/lib/Parse/ParseDecl.cpp:2117:27 D133790 <https://reviews.llvm.org/D133790> Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D131437/new/ https://reviews.llvm.org/D131437 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits