[Lldb-commits] [lldb] e98ef0a - [lldb] Fix several LLDB_LOGs with wrong indices in ClangASTSource.cpp

Jim Ingham via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 4 18:22:07 PST 2020


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 at 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 <syaghmour at 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 at 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 at lists.llvm.org
>>> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
> 
> _______________________________________________
> lldb-commits mailing list
> lldb-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits



More information about the lldb-commits mailing list