dwblaikie wrote: > > Should've mentioned this earlier, but we've been seeing crashes in lldb due > > to this change (though possibly related to our use of GALA python/gdb > > interop https://github.com/sivachandra/gala - we haven't isolated the > > failures from that yet (though we've been using it for years, so it's not > > the proximal cause, at least)). Might be worth reverting so other people > > aren't tripping over it too. > > but working on some repro/isolated/reduced case/something useful to share > > Something reproducible, or a stack trace would be appreciated! The only way I > see this change breaking something is in tools that don't expect > `DW_TAG_subprogram`s to have `DW_TAG_variable` children. Maybe there's > something missing on the LLDB side, though I haven't noticed anything myself > yet
Oh, a stack is easy to provide, sure: ``` #0 0x000055d7fe816b58 llvm::sys::RunSignalHandlers() (/usr/bin/lldb+0xc616b58) #1 0x000055d7fe819477 (/usr/bin/lldb+0xc619477) #2 0x00007f10c547c1c0 __restore_rt (/usr/grte/v5/lib64/libpthread.so.0+0x151c0) #3 0x000055d7fb7d0f76 clang::CXXRecordDecl::addedMember(clang::Decl*) (/usr/bin/lldb+0x95d0f76) #4 0x000055d7fb7c8cec clang::DeclContext::addHiddenDecl(clang::Decl*) (/usr/bin/lldb+0x95c8cec) #5 0x000055d7fb7c8d6e clang::DeclContext::addDecl(clang::Decl*) (/usr/bin/lldb+0x95c8d6e) #6 0x000055d7f9a2d190 lldb_private::TypeSystemClang::CreateVariableDeclaration(clang::DeclContext*, lldb_private::OptionalClangModuleID, char const*, clang::QualType) (/usr/ bin/lldb+0x782d190) #7 0x000055d7f99b9667 DWARFASTParserClang::GetClangDeclForDIE(lldb_private::plugin::dwarf::DWARFDIE const&) (/usr/bin/lldb+0x77b9667) #8 0x000055d7f99b94a7 DWARFASTParserClang::GetClangDeclForDIE(lldb_private::plugin::dwarf::DWARFDIE const&) (/usr/bin/lldb+0x77b94a7) #9 0x000055d7f99b9325 DWARFASTParserClang::EnsureAllDIEsInDeclContextHaveBeenParsed(lldb_private::CompilerDeclContext) (/usr/bin/lldb+0x77b9325) #10 0x000055d7f9a41e28 lldb_private::TypeSystemClang::DeclContextFindDeclByName(void*, lldb_private::ConstString, bool) (/usr/bin/lldb+0x7841e28) #11 0x000055d7f9aa25b1 lldb_private::CompilerDeclContext::FindDeclByName(lldb_private::ConstString, bool) (/usr/bin/lldb+0x78a25b1) #12 0x000055d7f9a72e83 lldb_private::ClangExpressionDeclMap::LookupLocalVariable(lldb_private::NameSearchContext&, lldb_private::ConstString, lldb_private::SymbolContext&, lldb_private::CompilerDeclContext const&) (/usr/bin/lldb+0x7872e83) #13 0x000055d7f9a70f77 lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(lldb_private::NameSearchContext&, std::__u::shared_ptr<lldb_private::Module>, lldb_private::CompilerDeclContext const&) (/usr/bin/lldb+0x7870f77) #14 0x000055d7f9a707aa lldb_private::ClangExpressionDeclMap::FindExternalVisibleDecls(lldb_private::NameSearchContext&) (/usr/bin/lldb+0x78707aa) #15 0x000055d7f9a49cbc lldb_private::ClangASTSource::FindExternalVisibleDeclsByName(clang::DeclContext const*, clang::DeclarationName) (/usr/bin/lldb+0x7849cbc) #16 0x000055d7fb7c9c5e clang::DeclContext::lookup(clang::DeclarationName) const (/usr/bin/lldb+0x95c9c5e) #17 0x000055d7fb077728 (/usr/bin/lldb+0x8e77728) #18 0x000055d7fb074400 (/usr/bin/lldb+0x8e74400) #19 0x000055d7fb0739c0 clang::Sema::CppLookupName(clang::LookupResult&, clang::Scope*) (/usr/bin/lldb+0x8e739c0) #20 0x000055d7fb077010 clang::Sema::LookupName(clang::LookupResult&, clang::Scope*, bool, bool) (/usr/bin/lldb+0x8e77010) #21 0x000055d7fa999e06 clang::Sema::BuildCXXNestedNameSpecifier(clang::Scope*, clang::Sema::NestedNameSpecInfo&, bool, clang::CXXScopeSpec&, clang::NamedDecl*, bool, bool*, bool) (/usr/bin/lldb+0x8799e06) #22 0x000055d7fa99b897 clang::Sema::ActOnCXXNestedNameSpecifier(clang::Scope*, clang::Sema::NestedNameSpecInfo&, bool, clang::CXXScopeSpec&, bool*, bool) (/usr/bin/lldb+0x879b897) #23 0x000055d7fa579fdd clang::Parser::ParseOptionalCXXScopeSpecifier(clang::CXXScopeSpec&, clang::OpaquePtr<clang::QualType>, bool, bool, bool*, bool, clang::IdentifierInfo**, bool, bool) (/usr/bin/lldb+0x8379fdd) #24 0x000055d7fa54c5ea clang::Parser::TryAnnotateTypeOrScopeToken(clang::ImplicitTypenameContext) (/usr/bin/lldb+0x834c5ea) #25 0x000055d7fa5d63df clang::Parser::isCXXDeclarationSpecifier(clang::ImplicitTypenameContext, clang::Parser::TPResult, bool*) (/usr/bin/lldb+0x83d63df) #26 0x000055d7fa5d5b6b clang::Parser::isCXXSimpleDeclaration(bool) (/usr/bin/lldb+0x83d5b6b) #27 0x000055d7fa5d5a3b clang::Parser::isCXXDeclarationStatement(bool) (/usr/bin/lldb+0x83d5a3b) #28 0x000055d7fa5fcd2a clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*, clang::ParsedAttributes&, clang::ParsedAttributes&) (/usr/bin/lldb+0x83fcd2a) #29 0x000055d7fa5fc7f8 clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, clang::Parser::ParsedStmtContext, clang::SourceLocation*) (/usr/bin/lldb+0x83fc7f8) #30 0x000055d7fa6076d0 clang::Parser::ParseCompoundStatementBody(bool) (/usr/bin/lldb+0x84076d0) #31 0x000055d7fa608606 clang::Parser::ParseFunctionStatementBody(clang::Decl*, clang::Parser::ParseScope&) (/usr/bin/lldb+0x8408606) #32 0x000055d7fa5492c8 clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&, clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) (/usr/bin/lldb+0x83492c8) #33 0x000055d7fa5b87da clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::ParsedAttributes&, clang::SourceLocation*, clang::Parser::ForRangeInit*) (/usr/bin/lldb+0x83b87da) #34 0x000055d7fa547f12 clang::Parser::ParseDeclOrFunctionDefInternal(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (/usr/bin/lldb+0x8347f12) #35 0x000055d7fa547918 clang::Parser::ParseDeclarationOrFunctionDefinition(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (/usr/bin/lldb+0x8347918) #36 0x000055d7fa546b1a clang::Parser::ParseExternalDeclaration(clang::ParsedAttributes&, clang::ParsedAttributes&, clang::ParsingDeclSpec*) (/usr/bin/lldb+0x8346b1a) #37 0x000055d7fa544bd7 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&, clang::Sema::ModuleImportState&) (/usr/bin/lldb+0x8344bd7) #38 0x000055d7fa53fbfe clang::ParseAST(clang::Sema&, bool, bool) (/usr/bin/lldb+0x833fbfe) #39 0x000055d7f9a83577 lldb_private::ClangExpressionParser::ParseInternal(lldb_private::DiagnosticManager&, clang::CodeCompleteConsumer*, unsigned int, unsigned int) (/usr/bin/lldb+0x7883577) #40 0x000055d7f9a57b9d lldb_private::ClangUserExpression::TryParse(lldb_private::DiagnosticManager&, lldb_private::ExecutionContextScope*, lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool) (/usr/bin/lldb+0x7857b9d) #41 0x000055d7f9a58425 lldb_private::ClangUserExpression::Parse(lldb_private::DiagnosticManager&, lldb_private::ExecutionContext&, lldb_private::ExecutionPolicy, bool, bool) (/usr/bin/lldb+0x7858425) #42 0x000055d7f974b5a6 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*) (/usr/bin/lldb+0x754b5a6) #43 0x000055d7f9b66121 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*) (/usr/bin/lldb+0x7966121) #44 0x000055d7f8e38b3f lldb::SBTarget::EvaluateExpression(char const*, lldb::SBExpressionOptions const&) (/usr/bin/lldb+0x6c38b3f) #45 0x000055d7f8f51f14 (/usr/bin/lldb+0x6d51f14) #46 0x000055d7f92e7411 (/usr/bin/lldb+0x70e7411) #47 0x000055d7f92a1535 _PyObject_Call (/usr/bin/lldb+0x70a1535) #48 0x000055d7f938161e _PyEval_EvalFrameDefault (/usr/bin/lldb+0x718161e) #49 0x000055d7f9376710 _PyEval_Vector (/usr/bin/lldb+0x7176710) #50 0x000055d7f92a0cdd _PyObject_FastCallDictTstate (/usr/bin/lldb+0x70a0cdd) #51 0x000055d7f92a194d _PyObject_Call_Prepend (/usr/bin/lldb+0x70a194d) #52 0x000055d7f930b839 (/usr/bin/lldb+0x710b839) #53 0x000055d7f93012fe (/usr/bin/lldb+0x71012fe) #54 0x000055d7f92a0eb4 _PyObject_MakeTpCall (/usr/bin/lldb+0x70a0eb4) #55 0x000055d7f937f7c8 _PyEval_EvalFrameDefault (/usr/bin/lldb+0x717f7c8) #56 0x000055d7f9376710 _PyEval_Vector (/usr/bin/lldb+0x7176710) #57 0x000055d7f8ea512c lldb_private::python::PythonCallable::operator()(std::initializer_list<lldb_private::python::PythonObject>) (/usr/bin/lldb+0x6ca512c) #58 0x000055d7f8eb9329 lldb_private::python::SWIGBridge::LLDBSwigPythonCallTypeScript(char const*, void const*, std::__u::shared_ptr<lldb_private::ValueObject> const&, void**, std::__u::shared_ptr<lldb_private::TypeSummaryOptions> const&, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>&) (/usr/bin/lldb+0x6cb9329) #59 0x000055d7f8e9b6f3 lldb_private::ScriptInterpreterPythonImpl::GetScriptedSummary(char const*, std::__u::shared_ptr<lldb_private::ValueObject>, std::__u::shared_ptr<lldb_private::StructuredData::Object>&, lldb_private::TypeSummaryOptions const&, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>&) (/usr/bin/lldb+0x6c9b6f3) #60 0x000055d7f972adb7 lldb_private::ScriptSummaryFormat::FormatObject(lldb_private::ValueObject*, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>&, lldb_private::TypeSummaryOptions const&) (/usr/bin/lldb+0x752adb7) #61 0x000055d7f96fa691 lldb_private::ValueObject::GetSummaryAsCString(lldb_private::TypeSummaryImpl*, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>&, lldb_private::TypeSummaryOptions const&) (/usr/bin/lldb+0x74fa691) #62 0x000055d7f96fa560 lldb_private::ValueObject::GetSummaryAsCString(lldb_private::TypeSummaryImpl*, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>&, lldb::LanguageType) (/usr/bin/lldb+0x74fa560) #63 0x000055d7f972e094 lldb_private::ValueObjectPrinter::PrintValueAndSummaryIfNeeded(bool&, bool&) (/usr/bin/lldb+0x752e094) #64 0x000055d7f972d2fb lldb_private::ValueObjectPrinter::PrintValueObject() (/usr/bin/lldb+0x752d2fb) #65 0x000055d7f97007cc lldb_private::ValueObject::Dump(lldb_private::Stream&, lldb_private::DumpValueObjectOptions const&) (/usr/bin/lldb+0x75007cc) #66 0x000055d7f9786d2f lldb_private::CommandObjectDWIMPrint::DoExecute(llvm::StringRef, lldb_private::CommandReturnObject&) (/usr/bin/lldb+0x7586d2f) #67 0x000055d7f984354a lldb_private::CommandObjectRaw::Execute(char const*, lldb_private::CommandReturnObject&) (/usr/bin/lldb+0x764354a) #68 0x000055d7f975c10b lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&, bool) (/usr/bin/lldb+0x755c10b) #69 0x000055d7f9760cb5 lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__u::basic_string<char, std::__u::char_traits<char>, std::__u::allocator<char>>&) (/usr/bin/lldb+0x7560cb5) #70 0x000055d7f96c29a3 lldb_private::IOHandlerEditline::Run() (/usr/bin/lldb+0x74c29a3) #71 0x000055d7f96a1a96 lldb_private::Debugger::RunIOHandlers() (/usr/bin/lldb+0x74a1a96) #72 0x000055d7f9762a0a lldb_private::CommandInterpreter::RunCommandInterpreter(lldb_private::CommandInterpreterRunOptions&) (/usr/bin/lldb+0x7562a0a) #73 0x000055d7f8da176c lldb::SBDebugger::RunCommandInterpreter(lldb::SBCommandInterpreterRunOptions const&) (/usr/bin/lldb+0x6ba176c) #74 0x000055d7f8d819f5 Driver::MainLoop() (/usr/bin/lldb+0x6b819f5) #75 0x000055d7f8d829a1 main (/usr/bin/lldb+0x6b829a1) #76 0x00007f10c52d0633 __libc_start_main (/usr/grte/v5/lib64/libc.so.6+0x61633) #77 0x000055d7f8d7e02a _start (/usr/bin/lldb+0x6b7e02a) ``` https://github.com/llvm/llvm-project/pull/72235 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits