We should really have a low-frequency bot that just runs the whole testsuite with all the logs turned on and make sure that doesn't crash...
Jim > On Mar 4, 2020, at 10:56 AM, Raphael “Teemperor” Isemann via lldb-commits > <lldb-commits@lists.llvm.org> wrote: > > Yeah this whole thing is a disaster and it’s puzzling that we don’t test the > whole logging but instead just crash on the end user machine. I’m currently > writing a test that gives all this code at least coverage and then I guess we > have to fix all of these bugs. > >> On Mar 4, 2020, at 10:53 AM, Shafik Yaghmour <syaghm...@apple.com> wrote: >> >> This is a lot of errors, did it the index use to start at one before? >> >> There is a type below, noted inline >> >>> On Mar 4, 2020, at 10:33 AM, Raphael Isemann via lldb-commits >>> <lldb-commits@lists.llvm.org> wrote: >>> >>> >>> Author: Raphael Isemann >>> Date: 2020-03-04T10:32:50-08:00 >>> New Revision: e98ef0af2c725f12dc60556a039e947ddeeb9f42 >>> >>> URL: >>> https://github.com/llvm/llvm-project/commit/e98ef0af2c725f12dc60556a039e947ddeeb9f42 >>> DIFF: >>> https://github.com/llvm/llvm-project/commit/e98ef0af2c725f12dc60556a039e947ddeeb9f42.diff >>> >>> LOG: [lldb] Fix several LLDB_LOGs with wrong indices in ClangASTSource.cpp >>> >>> Added: >>> >>> >>> Modified: >>> lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp >>> >>> Removed: >>> >>> >>> >>> ################################################################################ >>> diff --git a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp >>> b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp >>> index 4d98d9cbdda3..6a8c7bd46559 100644 >>> --- a/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp >>> +++ b/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp >>> @@ -190,8 +190,8 @@ void ClangASTSource::CompleteType(TagDecl *tag_decl) { >>> >>> if (log) { >>> LLDB_LOG(log, >>> - " CompleteTagDecl on (ASTContext*){1} Completing " >>> - "(TagDecl*){2} named {3}", >>> + " CompleteTagDecl on (ASTContext*){0} Completing " >>> + "(TagDecl*){1} named {2}", >>> m_clang_ast_context->getDisplayName(), tag_decl, >>> tag_decl->getName()); >>> >>> @@ -220,7 +220,7 @@ void ClangASTSource::CompleteType(TagDecl *tag_decl) { >>> ClangASTImporter::NamespaceMapSP namespace_map = >>> m_ast_importer_sp->GetNamespaceMap(namespace_context); >>> >>> - LLDB_LOGV(log, " CTD Inspecting namespace map{1} ({2} entries)", >>> + LLDB_LOGV(log, " CTD Inspecting namespace map{0} ({1} entries)", >>> namespace_map.get(), namespace_map->size()); >>> >>> if (!namespace_map) >>> @@ -229,7 +229,7 @@ void ClangASTSource::CompleteType(TagDecl *tag_decl) { >>> for (ClangASTImporter::NamespaceMap::iterator i = >>> namespace_map->begin(), >>> e = namespace_map->end(); >>> i != e && !found; ++i) { >>> - LLDB_LOG(log, " CTD Searching namespace {1} in module {2}", >>> + LLDB_LOG(log, " CTD Searching namespace {0} in module {1}", >>> i->second.GetName(), i->first->GetFileSpec().GetFilename()); >>> >>> TypeList types; >>> @@ -478,12 +478,12 @@ void ClangASTSource::FindExternalLexicalDecls( >>> std::string ast_dump = ClangUtil::DumpDecl(decl); >>> if (const NamedDecl *context_named_decl = >>> dyn_cast<NamedDecl>(context_decl)) >>> - LLDB_LOG(log, " FELD Adding [to {1}Decl {2}] lexical {3}Decl >>> {4}", >>> + LLDB_LOG(log, " FELD Adding [to {0}Decl {1}] lexical {2}Decl >>> 34}”, >> >> >> Typo should be {3} not 34} >> >> >>> context_named_decl->getDeclKindName(), >>> context_named_decl->getName(), decl->getDeclKindName(), >>> ast_dump); >>> else >>> - LLDB_LOG(log, " FELD Adding lexical {1}Decl {2}", >>> + LLDB_LOG(log, " FELD Adding lexical {0}Decl {1}", >>> decl->getDeclKindName(), ast_dump); >>> } >>> >>> @@ -527,19 +527,19 @@ void >>> ClangASTSource::FindExternalVisibleDecls(NameSearchContext &context) { >>> if (!context.m_decl_context) >>> LLDB_LOG(log, >>> "ClangASTSource::FindExternalVisibleDecls on " >>> - "(ASTContext*){1} '{2}' for '{3}' in a NULL DeclContext", >>> + "(ASTContext*){0} '{1}' for '{2}' in a NULL DeclContext", >>> m_ast_context, m_clang_ast_context->getDisplayName(), name); >>> else if (const NamedDecl *context_named_decl = >>> dyn_cast<NamedDecl>(context.m_decl_context)) >>> LLDB_LOG(log, >>> "ClangASTSource::FindExternalVisibleDecls on " >>> - "(ASTContext*){1} '{2}' for '{3}' in '{4}'", >>> + "(ASTContext*){0} '{1}' for '{2}' in '{3}'", >>> m_ast_context, m_clang_ast_context->getDisplayName(), name, >>> context_named_decl->getName()); >>> else >>> LLDB_LOG(log, >>> "ClangASTSource::FindExternalVisibleDecls on " >>> - "(ASTContext*){1} '{2}' for '{3}' in a '{4}'", >>> + "(ASTContext*){0} '{1}' for '{2}' in a '{3}'", >>> m_ast_context, m_clang_ast_context->getDisplayName(), name, >>> context.m_decl_context->getDeclKindName()); >>> } >>> @@ -631,7 +631,7 @@ void ClangASTSource::FindExternalVisibleDecls( >>> if (log) { >>> const char *name_string = type_sp->GetName().GetCString(); >>> >>> - LLDB_LOG(log, " CAS::FEVD Matching type found for \"{1}\": {2}", >>> name, >>> + LLDB_LOG(log, " CAS::FEVD Matching type found for \"{0}\": {1}", >>> name, >>> (name_string ? name_string : "<anonymous>")); >>> } >>> >>> @@ -682,7 +682,7 @@ void ClangASTSource::FillNamespaceMap( >>> std::pair<lldb::ModuleSP, CompilerDeclContext>( >>> module_sp, found_namespace_decl)); >>> >>> - LLDB_LOG(log, " CAS::FEVD Found namespace {1} in module {2}", >>> name, >>> + LLDB_LOG(log, " CAS::FEVD Found namespace {0} in module {1}", >>> name, >>> module_sp->GetFileSpec().GetFilename()); >>> } >>> } >>> @@ -712,7 +712,7 @@ void ClangASTSource::FillNamespaceMap( >>> std::pair<lldb::ModuleSP, CompilerDeclContext>(image, >>> >>> found_namespace_decl)); >>> >>> - LLDB_LOG(log, " CAS::FEVD Found namespace {1} in module {2}", name, >>> + LLDB_LOG(log, " CAS::FEVD Found namespace {0} in module {1}", name, >>> image->GetFileSpec().GetFilename()); >>> } >>> } >>> @@ -841,7 +841,7 @@ bool ClangASTSource::FindObjCMethodDeclsWithOrigin( >>> >>> Log >>> *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_EXPRESSIONS)); >>> >>> - LLDB_LOG(log, " CAS::FOMD found ({1}) {2}", log_info, >>> + LLDB_LOG(log, " CAS::FOMD found ({0}) {1}", log_info, >>> ClangUtil::DumpDecl(copied_method_decl)); >>> >>> context.AddNamedDecl(copied_method_decl); >>> @@ -866,7 +866,7 @@ void >>> ClangASTSource::FindDeclInModules(NameSearchContext &context, >>> if (!modules_decl_vendor->FindDecls(name, append, max_matches, decls)) >>> return; >>> >>> - LLDB_LOG(log, " CAS::FEVD Matching entity found for \"{1}\" in the >>> modules", >>> + LLDB_LOG(log, " CAS::FEVD Matching entity found for \"{0}\" in the >>> modules", >>> name); >>> >>> clang::NamedDecl *const decl_from_modules = decls[0]; >>> @@ -981,8 +981,8 @@ void >>> ClangASTSource::FindObjCMethodDecls(NameSearchContext &context) { >>> ConstString selector_name(ss.GetString()); >>> >>> LLDB_LOG(log, >>> - "ClangASTSource::FindObjCMethodDecls on (ASTContext*){1} '{2}' " >>> - "for selector [{3} {4}]", >>> + "ClangASTSource::FindObjCMethodDecls on (ASTContext*){0} '{1}' " >>> + "for selector [{2} {3}]", >>> m_ast_context, m_clang_ast_context->getDisplayName(), >>> interface_decl->getName(), selector_name); >>> SymbolContextList sc_list; >>> @@ -1104,7 +1104,7 @@ void >>> ClangASTSource::FindObjCMethodDecls(NameSearchContext &context) { >>> if (!copied_method_decl) >>> continue; >>> >>> - LLDB_LOG(log, " CAS::FOMD found (in symbols)\n{1}", >>> + LLDB_LOG(log, " CAS::FOMD found (in symbols)\n{0}", >>> ClangUtil::DumpDecl(copied_method_decl)); >>> >>> context.AddNamedDecl(copied_method_decl); >>> @@ -1134,7 +1134,7 @@ void >>> ClangASTSource::FindObjCMethodDecls(NameSearchContext &context) { >>> >>> LLDB_LOG(log, >>> "CAS::FOPD trying origin " >>> - "(ObjCInterfaceDecl*){1}/(ASTContext*){2}...", >>> + "(ObjCInterfaceDecl*){0}/(ASTContext*){1}...", >>> complete_interface_decl, &complete_iface_decl->getASTContext()); >>> >>> FindObjCMethodDeclsWithOrigin(context, complete_interface_decl, >>> @@ -1233,7 +1233,7 @@ static bool FindObjCPropertyAndIvarDeclsWithOrigin( >>> DeclFromParser<ObjCPropertyDecl> parser_property_decl( >>> origin_property_decl.Import(source)); >>> if (parser_property_decl.IsValid()) { >>> - LLDB_LOG(log, " CAS::FOPD found\n{1}", >>> + LLDB_LOG(log, " CAS::FOPD found\n{0}", >>> ClangUtil::DumpDecl(parser_property_decl.decl)); >>> >>> context.AddNamedDecl(parser_property_decl.decl); >>> @@ -1248,7 +1248,7 @@ static bool FindObjCPropertyAndIvarDeclsWithOrigin( >>> DeclFromParser<ObjCIvarDecl> parser_ivar_decl( >>> origin_ivar_decl.Import(source)); >>> if (parser_ivar_decl.IsValid()) { >>> - LLDB_LOG(log, " CAS::FOPD found\n{1}", >>> + LLDB_LOG(log, " CAS::FOPD found\n{0}", >>> ClangUtil::DumpDecl(parser_ivar_decl.decl)); >>> >>> context.AddNamedDecl(parser_ivar_decl.decl); >>> @@ -1271,7 +1271,7 @@ void >>> ClangASTSource::FindObjCPropertyAndIvarDecls(NameSearchContext &context) { >>> >>> LLDB_LOG(log, >>> "ClangASTSource::FindObjCPropertyAndIvarDecls on " >>> - "(ASTContext*){1} '{2}' for '{3}.{4}'", >>> + "(ASTContext*){0} '{1}' for '{2}.{3}'", >>> m_ast_context, m_clang_ast_context->getDisplayName(), >>> parser_iface_decl->getName(), context.m_decl_name.getAsString()); >>> >>> @@ -1280,7 +1280,7 @@ void >>> ClangASTSource::FindObjCPropertyAndIvarDecls(NameSearchContext &context) { >>> >>> LLDB_LOG(log, >>> "CAS::FOPD couldn't find the property on origin " >>> - "(ObjCInterfaceDecl*){1}/(ASTContext*){2}, searching " >>> + "(ObjCInterfaceDecl*){0}/(ASTContext*){1}, searching " >>> "elsewhere...", >>> origin_iface_decl.decl, &origin_iface_decl->getASTContext()); >>> >>> @@ -1305,7 +1305,7 @@ void >>> ClangASTSource::FindObjCPropertyAndIvarDecls(NameSearchContext &context) { >>> >>> LLDB_LOG(log, >>> "CAS::FOPD trying origin " >>> - "(ObjCInterfaceDecl*){1}/(ASTContext*){2}...", >>> + "(ObjCInterfaceDecl*){0}/(ASTContext*){1}...", >>> complete_iface_decl.decl, >>> &complete_iface_decl->getASTContext()); >>> >>> FindObjCPropertyAndIvarDeclsWithOrigin(context, *this, >>> complete_iface_decl); >>> @@ -1338,7 +1338,7 @@ void >>> ClangASTSource::FindObjCPropertyAndIvarDecls(NameSearchContext &context) { >>> >>> LLDB_LOG(log, >>> "CAS::FOPD[{0}] trying module " >>> - "(ObjCInterfaceDecl*){1}/(ASTContext*){2}...", >>> + "(ObjCInterfaceDecl*){0}/(ASTContext*){1}...", >>> interface_decl_from_modules.decl, >>> &interface_decl_from_modules->getASTContext()); >>> >>> @@ -1382,7 +1382,7 @@ void >>> ClangASTSource::FindObjCPropertyAndIvarDecls(NameSearchContext &context) { >>> >>> LLDB_LOG(log, >>> "CAS::FOPD[{0}] trying runtime " >>> - "(ObjCInterfaceDecl*){1}/(ASTContext*){2}...", >>> + "(ObjCInterfaceDecl*){0}/(ASTContext*){1}...", >>> interface_decl_from_runtime.decl, >>> &interface_decl_from_runtime->getASTContext()); >>> >>> @@ -1401,7 +1401,7 @@ void >>> ClangASTSource::LookupInNamespace(NameSearchContext &context) { >>> ClangASTImporter::NamespaceMapSP namespace_map = >>> m_ast_importer_sp->GetNamespaceMap(namespace_context); >>> >>> - LLDB_LOGV(log, " CAS::FEVD Inspecting namespace map {1} ({2} entries)", >>> + LLDB_LOGV(log, " CAS::FEVD Inspecting namespace map {0} ({1} entries)", >>> namespace_map.get(), namespace_map->size()); >>> >>> if (!namespace_map) >>> @@ -1410,7 +1410,7 @@ void >>> ClangASTSource::LookupInNamespace(NameSearchContext &context) { >>> for (ClangASTImporter::NamespaceMap::iterator i = namespace_map->begin(), >>> e = namespace_map->end(); >>> i != e; ++i) { >>> - LLDB_LOG(log, " CAS::FEVD Searching namespace {1} in module {2}", >>> + LLDB_LOG(log, " CAS::FEVD Searching namespace {0} in module {1}", >>> i->second.GetName(), i->first->GetFileSpec().GetFilename()); >>> >>> FindExternalVisibleDecls(context, i->first, i->second); >>> @@ -1506,7 +1506,7 @@ bool ClangASTSource::layoutRecordType(const >>> RecordDecl *record, uint64_t &size, >>> Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_EXPRESSIONS)); >>> >>> LLDB_LOG(log, >>> - "LayoutRecordType on (ASTContext*){1} '{2}' for (RecordDecl*)" >>> + "LayoutRecordType on (ASTContext*){0} '{1}' for (RecordDecl*)" >>> "{3} [name = '{4}']", >>> m_ast_context, m_clang_ast_context->getDisplayName(), record, >>> record->getName()); >>> @@ -1583,7 +1583,7 @@ bool ClangASTSource::layoutRecordType(const >>> RecordDecl *record, uint64_t &size, >>> fe = record->field_end(); >>> fi != fe; ++fi) { >>> LLDB_LOG(log, >>> - "LRT[{0}] (FieldDecl*){1}, Name = '{2}', Offset = {3} >>> bits", >>> + "LRT (FieldDecl*){0}, Name = '{1}', Offset = {2} bits", >>> *fi, fi->getName(), field_offsets[*fi]); >>> } >>> DeclFromParser<const CXXRecordDecl> parser_cxx_record = >>> @@ -1603,8 +1603,8 @@ bool ClangASTSource::layoutRecordType(const >>> RecordDecl *record, uint64_t &size, >>> DynCast<CXXRecordDecl>(base_record); >>> >>> LLDB_LOG(log, >>> - "LRT {1}(CXXRecordDecl*){2}, Name = '{3}', Offset = " >>> - "{4} chars", >>> + "LRT {0}(CXXRecordDecl*){1}, Name = '{2}', Offset = " >>> + "{3} chars", >>> (is_virtual ? "Virtual " : ""), base_cxx_record.decl, >>> base_cxx_record.decl->getName(), >>> (is_virtual >>> @@ -1628,14 +1628,14 @@ void ClangASTSource::CompleteNamespaceMap( >>> if (log) { >>> if (parent_map && parent_map->size()) >>> LLDB_LOG(log, >>> - "CompleteNamespaceMap on (ASTContext*){1} '{2}' Searching " >>> - "for namespace {3} in namespace {4}", >>> + "CompleteNamespaceMap on (ASTContext*){0} '{1}' Searching " >>> + "for namespace {2} in namespace {3}", >>> m_ast_context, m_clang_ast_context->getDisplayName(), name, >>> parent_map->begin()->second.GetName()); >>> else >>> LLDB_LOG(log, >>> - "CompleteNamespaceMap on (ASTContext*){1} '{2}' Searching " >>> - "for namespace {3}", >>> + "CompleteNamespaceMap on (ASTContext*){0} '{1}' Searching " >>> + "for namespace {2}", >>> m_ast_context, m_clang_ast_context->getDisplayName(), name); >>> } >>> >>> @@ -1662,7 +1662,7 @@ void ClangASTSource::CompleteNamespaceMap( >>> namespace_map->push_back(std::pair<lldb::ModuleSP, >>> CompilerDeclContext>( >>> module_sp, found_namespace_decl)); >>> >>> - LLDB_LOG(log, " CMN Found namespace {1} in module {2}", name, >>> + LLDB_LOG(log, " CMN Found namespace {0} in module {1}", name, >>> module_sp->GetFileSpec().GetFilename()); >>> } >>> } else { >>> @@ -1693,7 +1693,7 @@ void ClangASTSource::CompleteNamespaceMap( >>> namespace_map->push_back(std::pair<lldb::ModuleSP, >>> CompilerDeclContext>( >>> image, found_namespace_decl)); >>> >>> - LLDB_LOG(log, " CMN[{0}] Found namespace {1} in module {2}", name, >>> + LLDB_LOG(log, " CMN[{0}] Found namespace {0} in module {1}", name, >>> image->GetFileSpec().GetFilename()); >>> } >>> } >>> >>> >>> >>> _______________________________________________ >>> lldb-commits mailing list >>> lldb-commits@lists.llvm.org >>> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits > > _______________________________________________ > lldb-commits mailing list > lldb-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits