[Lldb-commits] [lldb] 1efde67 - Revert "[lldb] Add support for DW_AT_default_value in template params"

David Spickett via lldb-commits lldb-commits at lists.llvm.org
Fri Jan 27 03:41:14 PST 2023


Author: David Spickett
Date: 2023-01-27T11:36:42Z
New Revision: 1efde67d990c198b1480b2ab7b820f86388b84da

URL: https://github.com/llvm/llvm-project/commit/1efde67d990c198b1480b2ab7b820f86388b84da
DIFF: https://github.com/llvm/llvm-project/commit/1efde67d990c198b1480b2ab7b820f86388b84da.diff

LOG: Revert "[lldb] Add support for DW_AT_default_value in template params"

This reverts commit 1cf52e540242f968e0cf789587bcf76c01332aeb.

Due to test failures on Arm and AArch64 bots:
https://lab.llvm.org/buildbot/#/builders/96/builds/34718

(which were obscured by an earlier build failure)

Added: 
    

Modified: 
    lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/shared_ptr/TestDataFormatterLibcxxSharedPtr.py
    lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
    lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/TestDataFormatterLibcxxStringView.py
    lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/unique_ptr/TestDataFormatterLibcxxUniquePtr.py
    lldb/unittests/SymbolFile/DWARF/CMakeLists.txt
    lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp

Removed: 
    lldb/unittests/SymbolFile/DWARF/Inputs/DW_AT_default_value-test.yaml


################################################################################
diff  --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
index 4429b4fcae2a0..49c8fae64ed8a 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
@@ -2003,7 +2003,6 @@ bool DWARFASTParserClang::ParseTemplateDIE(
     CompilerType clang_type;
     uint64_t uval64 = 0;
     bool uval64_valid = false;
-    bool is_default_template_arg = false;
     if (num_attributes > 0) {
       DWARFFormValue form_value;
       for (size_t i = 0; i < num_attributes; ++i) {
@@ -2034,10 +2033,6 @@ bool DWARFASTParserClang::ParseTemplateDIE(
             uval64 = form_value.Unsigned();
           }
           break;
-        case DW_AT_default_value:
-          if (attributes.ExtractFormValueAtIndex(i, form_value))
-            is_default_template_arg = form_value.Boolean();
-          break;
         default:
           break;
         }
@@ -2063,19 +2058,16 @@ bool DWARFASTParserClang::ParseTemplateDIE(
           template_param_infos.InsertArg(
               name,
               clang::TemplateArgument(ast, llvm::APSInt(apint, !is_signed),
-                                      ClangUtil::GetQualType(clang_type),
-                                      is_default_template_arg));
+                                      ClangUtil::GetQualType(clang_type)));
         } else {
           template_param_infos.InsertArg(
-              name, clang::TemplateArgument(ClangUtil::GetQualType(clang_type),
-                                            /*isNullPtr*/ false,
-                                            is_default_template_arg));
+              name,
+              clang::TemplateArgument(ClangUtil::GetQualType(clang_type)));
         }
       } else {
         auto *tplt_type = m_ast.CreateTemplateTemplateParmDecl(template_name);
         template_param_infos.InsertArg(
-            name, clang::TemplateArgument(clang::TemplateName(tplt_type),
-                                          is_default_template_arg));
+            name, clang::TemplateArgument(clang::TemplateName(tplt_type)));
       }
     }
   }

diff  --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/shared_ptr/TestDataFormatterLibcxxSharedPtr.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/shared_ptr/TestDataFormatterLibcxxSharedPtr.py
index b20ac521c7c32..c646fccc2f5eb 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/shared_ptr/TestDataFormatterLibcxxSharedPtr.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/shared_ptr/TestDataFormatterLibcxxSharedPtr.py
@@ -60,7 +60,7 @@ def test_shared_ptr_variables(self):
 
         valobj = self.expect_var_path(
             "sp_str",
-            type="std::shared_ptr<std::basic_string<char> >",
+            type="std::shared_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >",
             children=[ValueCheck(name="__ptr_", summary='"hello"')],
         )
         self.assertRegex(valobj.summary, r'^"hello"( strong=1)? weak=1$')

diff  --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
index 7ac0efb4ca742..07b1aff74cfcd 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string/TestDataFormatterLibcxxString.py
@@ -70,7 +70,8 @@ def cleanup():
                 '(%s::u32string) u32_string = U"🍄🍅🍆🍌"'%ns,
                 # FIXME: This should have a 'U' prefix.
                 '(%s::u32string) u32_empty = ""'%ns,
-                '(%s::basic_string<unsigned char>) uchar = "aaaaa"'%(ns),
+                '(%s::basic_string<unsigned char, %s::char_traits<unsigned char>, '
+                '%s::allocator<unsigned char> >) uchar = "aaaaa"'%(ns,ns,ns),
                 '(%s::string *) null_str = nullptr'%ns,
         ])
 
@@ -107,7 +108,8 @@ def cleanup():
                 '(%s::u16string) u16_string = u"ß水氶"'%ns,
                 '(%s::u32string) u32_string = U"🍄🍅🍆🍌"'%ns,
                 '(%s::u32string) u32_empty = ""'%ns,
-                '(%s::basic_string<unsigned char>) uchar = "aaaaa"'%(ns),
+                '(%s::basic_string<unsigned char, %s::char_traits<unsigned char>, '
+                '%s::allocator<unsigned char> >) uchar = "aaaaa"'%(ns,ns,ns),
                 '(%s::string *) null_str = nullptr'%ns,
         ])
 

diff  --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/TestDataFormatterLibcxxStringView.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/TestDataFormatterLibcxxStringView.py
index 7ebfabcf5fd69..db82e7c65e033 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/TestDataFormatterLibcxxStringView.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/string_view/TestDataFormatterLibcxxStringView.py
@@ -96,10 +96,10 @@ def cleanup():
                              type='std::u32string_view',
                              summary='""')
         self.expect_var_path('uchar_source',
-                             type='std::basic_string<unsigned char>',
+                             type='std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >',
                              summary='"aaaaaaaaaa"')
         self.expect_var_path('uchar',
-                             type='std::basic_string_view<unsigned char>',
+                             type='std::basic_string_view<unsigned char, std::char_traits<unsigned char> >',
                              summary='"aaaaa"')
         self.expect_var_path('oops',
                              type='std::string_view',
@@ -172,10 +172,10 @@ def cleanup():
                              type='std::u32string_view',
                              summary='""')
         self.expect_var_path('uchar_source',
-                             type='std::basic_string<unsigned char>',
+                             type='std::basic_string<unsigned char, std::char_traits<unsigned char>, std::allocator<unsigned char> >',
                              summary='"aaaaaaaaaa"')
         self.expect_var_path('uchar',
-                             type='std::basic_string_view<unsigned char>',
+                             type='std::basic_string_view<unsigned char, std::char_traits<unsigned char> >',
                              summary='"aaaaa"')
  
         self.runCmd('cont')

diff  --git a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/unique_ptr/TestDataFormatterLibcxxUniquePtr.py b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/unique_ptr/TestDataFormatterLibcxxUniquePtr.py
index a0d12b4f2061d..70efdd84f242a 100644
--- a/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/unique_ptr/TestDataFormatterLibcxxUniquePtr.py
+++ b/lldb/test/API/functionalities/data-formatter/data-formatter-stl/libcxx/unique_ptr/TestDataFormatterLibcxxUniquePtr.py
@@ -22,7 +22,7 @@ def test_unique_ptr_variables(self):
 
         valobj = self.expect_var_path(
             "up_empty",
-            type="std::unique_ptr<int>",
+            type="std::unique_ptr<int, std::default_delete<int> >",
             summary="nullptr",
             children=[ValueCheck(name="__value_")],
         )
@@ -36,7 +36,7 @@ def test_unique_ptr_variables(self):
 
         valobj = self.expect_var_path(
             "up_int",
-            type="std::unique_ptr<int>",
+            type="std::unique_ptr<int, std::default_delete<int> >",
             summary="10",
             children=[ValueCheck(name="__value_")],
         )
@@ -44,7 +44,7 @@ def test_unique_ptr_variables(self):
 
         valobj = self.expect_var_path(
             "up_int_ref",
-            type="std::unique_ptr<int> &",
+            type="std::unique_ptr<int, std::default_delete<int> > &",
             summary="10",
             children=[ValueCheck(name="__value_")],
         )
@@ -52,7 +52,7 @@ def test_unique_ptr_variables(self):
 
         valobj = self.expect_var_path(
             "up_int_ref_ref",
-            type="std::unique_ptr<int> &&",
+            type="std::unique_ptr<int, std::default_delete<int> > &&",
             summary="10",
             children=[ValueCheck(name="__value_")],
         )
@@ -60,13 +60,13 @@ def test_unique_ptr_variables(self):
 
         valobj = self.expect_var_path(
             "up_str",
-            type="std::unique_ptr<std::basic_string<char> >",
+            type="std::unique_ptr<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::default_delete<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >",
             summary='"hello"',
             children=[ValueCheck(name="__value_", summary='"hello"')],
         )
 
         valobj = self.expect_var_path(
-            "up_user", type="std::unique_ptr<User>"
+            "up_user", type="std::unique_ptr<User, std::default_delete<User> >"
         )
         self.assertRegex(valobj.summary, "^User @ 0x0*[1-9a-f][0-9a-f]+$")
         self.assertNotEqual(valobj.child[0].unsigned, 0)

diff  --git a/lldb/unittests/SymbolFile/DWARF/CMakeLists.txt b/lldb/unittests/SymbolFile/DWARF/CMakeLists.txt
index 4a37ece124291..6af866153a138 100644
--- a/lldb/unittests/SymbolFile/DWARF/CMakeLists.txt
+++ b/lldb/unittests/SymbolFile/DWARF/CMakeLists.txt
@@ -24,7 +24,6 @@ add_lldb_unittest(SymbolFileDWARFTests
   )
 
 set(test_inputs
-   test-dwarf.exe
-   DW_AT_default_value-test.yaml)
+   test-dwarf.exe)
 
 add_unittest_inputs(SymbolFileDWARFTests "${test_inputs}")

diff  --git a/lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp b/lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
index ecdb159916629..4d1c2aefb0a44 100644
--- a/lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
+++ b/lldb/unittests/SymbolFile/DWARF/DWARFASTParserClangTests.cpp
@@ -11,7 +11,6 @@
 #include "Plugins/SymbolFile/DWARF/DWARFDIE.h"
 #include "TestingSupport/Symbol/ClangTestUtils.h"
 #include "TestingSupport/Symbol/YAMLModuleTester.h"
-#include "lldb/Core/Debugger.h"
 #include "gmock/gmock.h"
 #include "gtest/gtest.h"
 
@@ -20,16 +19,7 @@ using namespace lldb_private;
 using namespace lldb_private::dwarf;
 
 namespace {
-static std::once_flag debugger_initialize_flag;
-
-class DWARFASTParserClangTests : public testing::Test {
-  void SetUp() override {
-    HostInfo::Initialize();
-    std::call_once(debugger_initialize_flag,
-                   []() { Debugger::Initialize(nullptr); });
-  }
-  void TearDown() override { HostInfo::Terminate(); }
-};
+class DWARFASTParserClangTests : public testing::Test {};
 
 class DWARFASTParserClangStub : public DWARFASTParserClang {
 public:
@@ -414,53 +404,3 @@ TEST_F(ExtractIntFromFormValueTest, TestUnsignedInt) {
   EXPECT_THAT_EXPECTED(Extract(ast.UnsignedIntTy, uint_max + 2),
                        llvm::Failed());
 }
-
-TEST_F(DWARFASTParserClangTests, TestDefaultTemplateParamParsing) {
-  // Tests parsing DW_AT_default_value for template parameters.
-  auto BufferOrError = llvm::MemoryBuffer::getFile(
-      GetInputFilePath("DW_AT_default_value-test.yaml"), /*IsText=*/true);
-  ASSERT_TRUE(BufferOrError);
-  YAMLModuleTester t(BufferOrError.get()->getBuffer());
-
-  DWARFUnit *unit = t.GetDwarfUnit();
-  ASSERT_NE(unit, nullptr);
-  const DWARFDebugInfoEntry *cu_entry = unit->DIE().GetDIE();
-  ASSERT_EQ(cu_entry->Tag(), DW_TAG_compile_unit);
-  DWARFDIE cu_die(unit, cu_entry);
-
-  auto holder = std::make_unique<clang_utils::TypeSystemClangHolder>("ast");
-  auto &ast_ctx = *holder->GetAST();
-  DWARFASTParserClangStub ast_parser(ast_ctx);
-
-  llvm::SmallVector<lldb::TypeSP, 2> types;
-  for (DWARFDIE die : cu_die.children()) {
-    if (die.Tag() == DW_TAG_class_type) {
-      SymbolContext sc;
-      bool new_type = false;
-      types.push_back(ast_parser.ParseTypeFromDWARF(sc, die, &new_type));
-    }
-  }
-
-  ASSERT_EQ(types.size(), 3U);
-
-  auto check_decl = [](auto const *decl) {
-    clang::ClassTemplateSpecializationDecl const *ctsd =
-        llvm::dyn_cast_or_null<clang::ClassTemplateSpecializationDecl>(decl);
-    ASSERT_NE(ctsd, nullptr);
-
-    auto const &args = ctsd->getTemplateArgs();
-    ASSERT_GT(args.size(), 0U);
-
-    for (auto const &arg : args.asArray()) {
-      EXPECT_TRUE(arg.getIsDefaulted());
-    }
-  };
-
-  for (auto const &type_sp : types) {
-    ASSERT_NE(type_sp, nullptr);
-    auto const *decl = ClangUtil::GetAsTagDecl(type_sp->GetFullCompilerType());
-    if (decl->getName() == "bar" || decl->getName() == "baz") {
-      check_decl(decl);
-    }
-  }
-}

diff  --git a/lldb/unittests/SymbolFile/DWARF/Inputs/DW_AT_default_value-test.yaml b/lldb/unittests/SymbolFile/DWARF/Inputs/DW_AT_default_value-test.yaml
deleted file mode 100644
index 2e83d37affbde..0000000000000
--- a/lldb/unittests/SymbolFile/DWARF/Inputs/DW_AT_default_value-test.yaml
+++ /dev/null
@@ -1,314 +0,0 @@
-# template <typename T>
-# class foo {};
-#
-# template <template <typename T> class CT = foo>
-# class baz {};
-#
-# template <typename T = char, int i = 3, bool b = true,
-#           typename c = foo<T>>
-# class bar {};
-#
-# int main() {
-#     bar<> br;
-#     baz<> bz;
-#     return 0;
-# }
-#
-# YAML generated on Linux using obj2yaml on the above program
-# compiled with Clang.
---- !ELF
-FileHeader:
-  Class:           ELFCLASS64
-  Data:            ELFDATA2LSB
-  Type:            ET_REL
-  Machine:         EM_AARCH64
-  SectionHeaderStringTable: .strtab
-Sections:
-  - Name:            .text
-    Type:            SHT_PROGBITS
-    Flags:           [ SHF_ALLOC, SHF_EXECINSTR ]
-    AddressAlign:    0x4
-    Content:         FF4300D1E0031F2AFF0F00B9FF430091C0035FD6
-  - Name:            .linker-options
-    Type:            SHT_LLVM_LINKER_OPTIONS
-    Flags:           [ SHF_EXCLUDE ]
-    AddressAlign:    0x1
-    Content:         ''
-  - Name:            .debug_abbrev
-    Type:            SHT_PROGBITS
-    AddressAlign:    0x1
-    Content:         011101252513050325721710171B25111B120673170000022E01111B1206401803253A0B3B0B49133F190000033400021803253A0B3B0B4913000004240003253E0B0B0B0000050201360B03250B0B3A0B3B0B0000062F00491303251E190000073000491303251E191C0D0000083000491303251E191C0F000009020003253C1900000A8682010003251E19904225000000
-  - Name:            .debug_info
-    Type:            SHT_PROGBITS
-    AddressAlign:    0x1
-    Content:         7F00000005000108000000000100210001000000000000000002001400000000000000020014000000016F03000B490000000302910B05000C4D0000000302910A0E000D78000000000404050405050D010009066E000000070749000000080308720000000A0106760000000C000406080104090201090B0505110100050A0F100000
-  - Name:            .debug_str_offsets
-    Type:            SHT_PROGBITS
-    AddressAlign:    0x1
-    Content:         4C00000005000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
-  - Name:            .comment
-    Type:            SHT_PROGBITS
-    Flags:           [ SHF_MERGE, SHF_STRINGS ]
-    AddressAlign:    0x1
-    EntSize:         0x1
-    Content:         00636C616E672076657273696F6E2031362E302E30202868747470733A2F2F6769746875622E636F6D2F6C6C766D2F6C6C766D2D70726F6A65637420343764323862376138323638653337616130646537366238353966343530386533646261633663652900
-  - Name:            .note.GNU-stack
-    Type:            SHT_PROGBITS
-    AddressAlign:    0x1
-  - Name:            .eh_frame
-    Type:            SHT_PROGBITS
-    Flags:           [ SHF_ALLOC ]
-    AddressAlign:    0x8
-    Content:         1000000000000000017A5200017C1E011B0C1F001800000018000000000000001400000000440E104C0E000000000000
-  - Name:            .debug_line
-    Type:            SHT_PROGBITS
-    AddressAlign:    0x1
-    Content:         580000000500080037000000010101FB0E0D00010101010000000100000101011F010000000003011F020F051E01000000000019537E33C1D1006B79E3D1C33D6EE6A304000009020000000000000000030A0105050ABD0208000101
-  - Name:            .debug_line_str
-    Type:            SHT_PROGBITS
-    Flags:           [ SHF_MERGE, SHF_STRINGS ]
-    AddressAlign:    0x1
-    EntSize:         0x1
-    Content:         2F686F6D652F6761726465690064656661756C74732E63707000
-  - Name:            .rela.debug_info
-    Type:            SHT_RELA
-    Flags:           [ SHF_INFO_LINK ]
-    Link:            .symtab
-    AddressAlign:    0x8
-    Info:            .debug_info
-    Relocations:
-      - Offset:          0x8
-        Symbol:          .debug_abbrev
-        Type:            R_AARCH64_ABS32
-      - Offset:          0x11
-        Symbol:          .debug_str_offsets
-        Type:            R_AARCH64_ABS32
-        Addend:          8
-      - Offset:          0x15
-        Symbol:          .debug_line
-        Type:            R_AARCH64_ABS32
-      - Offset:          0x1F
-        Symbol:          .debug_addr
-        Type:            R_AARCH64_ABS32
-        Addend:          8
-  - Name:            .rela.debug_str_offsets
-    Type:            SHT_RELA
-    Flags:           [ SHF_INFO_LINK ]
-    Link:            .symtab
-    AddressAlign:    0x8
-    Info:            .debug_str_offsets
-    Relocations:
-      - Offset:          0x8
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-      - Offset:          0xC
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          101
-      - Offset:          0x10
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          114
-      - Offset:          0x14
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          127
-      - Offset:          0x18
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          132
-      - Offset:          0x1C
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          136
-      - Offset:          0x20
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          139
-      - Offset:          0x24
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          144
-      - Offset:          0x28
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          146
-      - Offset:          0x2C
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          148
-      - Offset:          0x30
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          153
-      - Offset:          0x34
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          155
-      - Offset:          0x38
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          165
-      - Offset:          0x3C
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          167
-      - Offset:          0x40
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          198
-      - Offset:          0x44
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          201
-      - Offset:          0x48
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          204
-      - Offset:          0x4C
-        Symbol:          .debug_str
-        Type:            R_AARCH64_ABS32
-        Addend:          208
-  - Name:            .rela.debug_addr
-    Type:            SHT_RELA
-    Flags:           [ SHF_INFO_LINK ]
-    Link:            .symtab
-    AddressAlign:    0x8
-    Info:            .debug_addr
-    Relocations:
-      - Offset:          0x8
-        Symbol:          .text
-        Type:            R_AARCH64_ABS64
-  - Name:            .rela.eh_frame
-    Type:            SHT_RELA
-    Flags:           [ SHF_INFO_LINK ]
-    Link:            .symtab
-    AddressAlign:    0x8
-    Info:            .eh_frame
-    Relocations:
-      - Offset:          0x1C
-        Symbol:          .text
-        Type:            R_AARCH64_PREL32
-  - Name:            .rela.debug_line
-    Type:            SHT_RELA
-    Flags:           [ SHF_INFO_LINK ]
-    Link:            .symtab
-    AddressAlign:    0x8
-    Info:            .debug_line
-    Relocations:
-      - Offset:          0x22
-        Symbol:          .debug_line_str
-        Type:            R_AARCH64_ABS32
-      - Offset:          0x2E
-        Symbol:          .debug_line_str
-        Type:            R_AARCH64_ABS32
-        Addend:          13
-      - Offset:          0x48
-        Symbol:          .text
-        Type:            R_AARCH64_ABS64
-  - Name:            .llvm_addrsig
-    Type:            SHT_LLVM_ADDRSIG
-    Flags:           [ SHF_EXCLUDE ]
-    Link:            .symtab
-    AddressAlign:    0x1
-    Offset:          0x818
-    Symbols:         [  ]
-  - Type:            SectionHeaderTable
-    Sections:
-      - Name:            .strtab
-      - Name:            .text
-      - Name:            .linker-options
-      - Name:            .debug_abbrev
-      - Name:            .debug_info
-      - Name:            .rela.debug_info
-      - Name:            .debug_str_offsets
-      - Name:            .rela.debug_str_offsets
-      - Name:            .debug_str
-      - Name:            .debug_addr
-      - Name:            .rela.debug_addr
-      - Name:            .comment
-      - Name:            .note.GNU-stack
-      - Name:            .eh_frame
-      - Name:            .rela.eh_frame
-      - Name:            .debug_line
-      - Name:            .rela.debug_line
-      - Name:            .debug_line_str
-      - Name:            .llvm_addrsig
-      - Name:            .symtab
-Symbols:
-  - Name:            defaults.cpp
-    Type:            STT_FILE
-    Index:           SHN_ABS
-  - Name:            .text
-    Type:            STT_SECTION
-    Section:         .text
-  - Name:            '$x.0'
-    Section:         .text
-  - Name:            .debug_abbrev
-    Type:            STT_SECTION
-    Section:         .debug_abbrev
-  - Name:            '$d.1'
-    Section:         .debug_abbrev
-  - Name:            '$d.2'
-    Section:         .debug_info
-  - Name:            .debug_str_offsets
-    Type:            STT_SECTION
-    Section:         .debug_str_offsets
-  - Name:            '$d.3'
-    Section:         .debug_str_offsets
-  - Name:            .debug_str
-    Type:            STT_SECTION
-    Section:         .debug_str
-  - Name:            '$d.4'
-    Section:         .debug_str
-  - Name:            .debug_addr
-    Type:            STT_SECTION
-    Section:         .debug_addr
-  - Name:            '$d.5'
-    Section:         .debug_addr
-  - Name:            '$d.6'
-    Section:         .comment
-  - Name:            '$d.7'
-    Section:         .eh_frame
-  - Name:            .debug_line
-    Type:            STT_SECTION
-    Section:         .debug_line
-  - Name:            '$d.8'
-    Section:         .debug_line
-  - Name:            .debug_line_str
-    Type:            STT_SECTION
-    Section:         .debug_line_str
-  - Name:            '$d.9'
-    Section:         .debug_line_str
-  - Name:            main
-    Type:            STT_FUNC
-    Section:         .text
-    Binding:         STB_GLOBAL
-    Size:            0x14
-DWARF:
-  debug_str:
-    - 'clang version 16.0.0 (https://github.com/llvm/llvm-project 47d28b7a8268e37aa0de76b859f4508e3dbac6ce)'
-    - defaults.cpp
-    - '/home/gardei'
-    - main
-    - int
-    - br
-    - char
-    - T
-    - i
-    - bool
-    - b
-    - 'foo<char>'
-    - c
-    - 'bar<char, 3, true, foo<char> >'
-    - bz
-    - CT
-    - foo
-    - 'baz<foo>'
-  debug_addr:
-    - Length:          0xC
-      Version:         0x5
-      AddressSize:     0x8
-      Entries:
-        - {}
-...


        


More information about the lldb-commits mailing list