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

Reply via email to