[Lldb-commits] [lldb] [lldb] add TemplateRange and NameQualifiersRange to DemangledNameInfo (PR #150999)

Charles Zablit via lldb-commits lldb-commits at lists.llvm.org
Mon Aug 4 09:40:59 PDT 2025


================
@@ -92,6 +92,10 @@ void TrackingOutputBuffer::finalizeStart() {
   if (NameInfo.BasenameRange.second == 0)
     NameInfo.BasenameRange.second = getCurrentPosition();
 
+  if (NameInfo.BasenameRange.second != NameInfo.ArgumentsRange.first)
+    NameInfo.TemplateArgumentsRange = {NameInfo.BasenameRange.second,
+                                       NameInfo.ArgumentsRange.first};
----------------
charles-zablit wrote:

```
********************
Failed Tests (20):
  lldb-api :: commands/expression/import-std-module/weak_ptr-dbg-info-content/TestDbgInfoContentWeakPtrFromStdModule.py
  lldb-api :: commands/expression/two-files/TestObjCTypeQueryFromOtherCompileUnit.py
  lldb-api :: commands/frame/var/direct-ivar/objc/TestFrameVarDirectIvarObjC.py
  lldb-api :: commands/register/register/register_command/TestRegisters.py
  lldb-api :: functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCCF.py
  lldb-api :: functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCExpr.py
  lldb-api :: functionalities/data-formatter/data-formatter-objc/TestDataFormatterObjCKVO.py
  lldb-api :: functionalities/data-formatter/data-formatter-objc/cmtime/TestDataFormatterCMTime.py
  lldb-api :: functionalities/data-formatter/data-formatter-proper-plurals/TestFormattersOneIsSingular.py
  lldb-api :: functionalities/process_crash_info/TestProcessCrashInfo.py
  lldb-api :: functionalities/single-thread-step/TestSingleThreadStepTimeout.py
  lldb-api :: lang/c/tls_globals/TestTlsGlobals.py
  lldb-api :: lang/cpp/dynamic-value/TestDynamicValue.py
  lldb-api :: lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
  lldb-api :: lang/objc/objc-foundation-dictionary-empty/TestNSDictionary0.py
  lldb-api :: macosx/function-starts/TestFunctionStarts.py
  lldb-api :: macosx/no-nlist-memory-module/TestNoNlistsDylib.py
  lldb-shell :: ScriptInterpreter/Python/Crashlog/app_specific_backtrace_crashlog.test
  lldb-shell :: SymbolFile/DWARF/objc-gmodules-class-extension.test
  lldb-unit :: Core/./LLDBCoreTests/DemanglingPartsTests/DemanglingPartsTestFixture/DemanglingParts/7
```

The only seemingly related failing test is `DemanglingPartsTestFixture/DemanglingParts/7` with:
```
/Users/charleszablit/Developer/llvm-proper/llvm-project/lldb/unittests/Core/MangledTest.cpp:681: Failure
Expected equality of these values:
  OB->NameInfo.TemplateArgumentsRange
    Which is: (38, 342)
  info.TemplateArgumentsRange
    Which is: (0, 0)
```

This value should be (0, 0):

```cpp
   { "_ZN8nlohmann16json_abi_v3_11_310basic_jsonINSt3__13mapENS2_6vectorENS2_12basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEEbxydS8_NS0_14adl_serializerENS4_IhNS8_IhEEEEvEC1EDn",
     {
       /*.BasenameRange=*/{344, 354}, /*.TemplateArgumentsRange=*/{0, 0}, /*.ScopeRange=*/{0, 344},
       /*.ArgumentsRange=*/{354, 370}, /*.QualifiersRange=*/{370, 370}, /*.NameQualifiersRange=*/{0, 0},
       /*.PrefixRange=*/{0, 0}, /*.SuffixRange=*/{0, 0}
     },
     /*.basename=*/"basic_json",
     /*.scope=*/"nlohmann::json_abi_v3_11_3::basic_json<std::__1::map, std::__1::vector, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, bool, long long, unsigned long long, double, std::__1::allocator, nlohmann::json_abi_v3_11_3::adl_serializer, std::__1::vector<unsigned char, std::__1::allocator<unsigned char>>, void>::",
     /*.qualifiers=*/""
   }
```

I think we should override more methods in `TrackingOutputBuffer` for this to work.

https://github.com/llvm/llvm-project/pull/150999


More information about the lldb-commits mailing list