[Lldb-commits] [lldb] bdae26f - [LLDB][DWARF] Use the same qualified name computation for Rust (#165840)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Nov 17 02:38:44 PST 2025
Author: Kiva
Date: 2025-11-17T10:38:40Z
New Revision: bdae26f3b47b1022402d578c2a748c1c5744f308
URL: https://github.com/llvm/llvm-project/commit/bdae26f3b47b1022402d578c2a748c1c5744f308
DIFF: https://github.com/llvm/llvm-project/commit/bdae26f3b47b1022402d578c2a748c1c5744f308.diff
LOG: [LLDB][DWARF] Use the same qualified name computation for Rust (#165840)
Currently LLDB's `ParseRustVariantPart` generates the following
`CXXRecordDecl` for a Rust enum
```rust
enum AA {
A(u8)
}
```
```
CXXRecordDecl 0x5555568d5970 <<invalid sloc>> <invalid sloc> struct AA
|-CXXRecordDecl 0x5555568d5ab0 <<invalid sloc>> <invalid sloc> union test_issue::AA$Inner definition
| |-CXXRecordDecl 0x5555568d5d18 <<invalid sloc>> <invalid sloc> struct A$Variant definition
| | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable trivial
| | | `-Destructor simple irrelevant trivial needs_implicit
| | `-FieldDecl 0x555555a77880 <<invalid sloc>> <invalid sloc> value 'test_issue::AA::A'
| `-FieldDecl 0x555555a778f0 <<invalid sloc>> <invalid sloc> $variant$ 'test_issue::AA::test_issue::AA$Inner::A$Variant'
|-CXXRecordDecl 0x5555568d5c48 <<invalid sloc>> <invalid sloc> struct A definition
| `-FieldDecl 0x555555a777e0 <<invalid sloc>> <invalid sloc> __0 'unsigned char'
`-FieldDecl 0x555555a77960 <<invalid sloc>> <invalid sloc> $variants$ 'test_issue::AA::test_issue::AA$Inner'
```
While when the Rust enum type name is the same as its variant name, the
generated `CXXRecordDecl` becomes the following – there's a circular
reference between `struct A$Variant` and `struct A`, causing #163048.
```rust
enum A {
A(u8)
}
```
```
CXXRecordDecl 0x5555568d5760 <<invalid sloc>> <invalid sloc> struct A
|-CXXRecordDecl 0x5555568d58a0 <<invalid sloc>> <invalid sloc> union test_issue::A$Inner definition
| |-CXXRecordDecl 0x5555568d5a38 <<invalid sloc>> <invalid sloc> struct A$Variant definition
| | `-FieldDecl 0x5555568d5b70 <<invalid sloc>> <invalid sloc> value 'test_issue::A' <---- bug here
| `-FieldDecl 0x5555568d5be0 <<invalid sloc>> <invalid sloc> $variant$ 'test_issue::A::test_issue::A$Inner::A$Variant'
`-FieldDecl 0x5555568d5c50 <<invalid sloc>> <invalid sloc> $variants$ 'test_issue::A::test_issue::A$Inner'
```
The problem was caused by `GetUniqueTypeNameAndDeclaration` not
returning the correct qualified name for DWARF DIE `test_issue::A::A`,
instead, it returned `A`. This caused `ParseStructureLikeDIE` to find
the wrong type `test_issue::A` and returned early.
The failure in `GetUniqueTypeNameAndDeclaration` appears to stem from a
language check that returns early unless the language is C++. I changed
it so Rust follows the C++ path rather than returning. I’m not entirely
sure this is the right approach — Rust’s qualified name rules look
similar, but not identical? Alternatively, we could add a Rust-specific
implementation that forms qualified names according to Rust's rules.
Added:
lldb/test/API/lang/rust/enum-variant-same-name/RustEnumValue.py
lldb/test/API/lang/rust/enum-variant-same-name/TestRustEnumVariantSameName.py
lldb/test/API/lang/rust/enum-variant-same-name/main.rs
lldb/test/API/lang/rust/enum-variant-same-name/main.yaml
Modified:
lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
Removed:
################################################################################
diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
index 63b2dc4ab82b0..36aa49ac3de95 100644
--- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
+++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
@@ -1705,8 +1705,11 @@ void DWARFASTParserClang::GetUniqueTypeNameAndDeclaration(
// For C++, we rely solely upon the one definition rule that says
// only one thing can exist at a given decl context. We ignore the
// file and line that things are declared on.
- if (!die.IsValid() || !Language::LanguageIsCPlusPlus(language) ||
- unique_typename.IsEmpty())
+ // FIXME: Rust pretends to be C++ for now, so use C++ name qualification rules
+ if (!Language::LanguageIsCPlusPlus(language) &&
+ language != lldb::eLanguageTypeRust)
+ return;
+ if (!die.IsValid() || unique_typename.IsEmpty())
return;
decl_declaration.Clear();
std::string qualified_name;
diff --git a/lldb/test/API/lang/rust/enum-variant-same-name/RustEnumValue.py b/lldb/test/API/lang/rust/enum-variant-same-name/RustEnumValue.py
new file mode 100644
index 0000000000000..bc4fd7d695785
--- /dev/null
+++ b/lldb/test/API/lang/rust/enum-variant-same-name/RustEnumValue.py
@@ -0,0 +1,69 @@
+"""Helper library to traverse data emitted for Rust enums """
+from lldbsuite.test.lldbtest import *
+
+DISCRIMINANT_MEMBER_NAME = "$discr$"
+VALUE_MEMBER_NAME = "value"
+
+
+class RustEnumValue:
+ def __init__(self, value: lldb.SBValue):
+ self.value = value
+
+ def getAllVariantTypes(self):
+ result = []
+ for i in range(self._inner().GetNumChildren()):
+ result.append(self.getVariantByIndex(i).GetDisplayTypeName())
+ return result
+
+ def _inner(self) -> lldb.SBValue:
+ return self.value.GetChildAtIndex(0)
+
+ def getVariantByIndex(self, index):
+ return (
+ self._inner()
+ .GetChildAtIndex(index)
+ .GetChildMemberWithName(VALUE_MEMBER_NAME)
+ )
+
+ @staticmethod
+ def _getDiscriminantValueAsUnsigned(discr_sbvalue: lldb.SBValue):
+ byte_size = discr_sbvalue.GetType().GetByteSize()
+ error = lldb.SBError()
+
+ # when discriminant is u16 Clang emits 'unsigned char'
+ # and LLDB seems to treat it as character type disalowing to call GetValueAsUnsigned
+ if byte_size == 1:
+ return discr_sbvalue.GetData().GetUnsignedInt8(error, 0)
+ elif byte_size == 2:
+ return discr_sbvalue.GetData().GetUnsignedInt16(error, 0)
+ elif byte_size == 4:
+ return discr_sbvalue.GetData().GetUnsignedInt32(error, 0)
+ elif byte_size == 8:
+ return discr_sbvalue.GetData().GetUnsignedInt64(error, 0)
+ else:
+ return discr_sbvalue.GetValueAsUnsigned()
+
+ def getCurrentVariantIndex(self):
+ default_index = 0
+ for i in range(self._inner().GetNumChildren()):
+ variant: lldb.SBValue = self._inner().GetChildAtIndex(i)
+ discr = variant.GetChildMemberWithName(DISCRIMINANT_MEMBER_NAME)
+ if discr.IsValid():
+ discr_unsigned_value = RustEnumValue._getDiscriminantValueAsUnsigned(
+ discr
+ )
+ if variant.GetName() == f"$variant${discr_unsigned_value}":
+ return discr_unsigned_value
+ else:
+ default_index = i
+ return default_index
+
+ def getFields(self):
+ result = []
+ for i in range(self._inner().GetNumChildren()):
+ type: lldb.SBType = self._inner().GetType()
+ result.append(type.GetFieldAtIndex(i).GetName())
+ return result
+
+ def getCurrentValue(self) -> lldb.SBValue:
+ return self.getVariantByIndex(self.getCurrentVariantIndex())
diff --git a/lldb/test/API/lang/rust/enum-variant-same-name/TestRustEnumVariantSameName.py b/lldb/test/API/lang/rust/enum-variant-same-name/TestRustEnumVariantSameName.py
new file mode 100644
index 0000000000000..0a192dcada83f
--- /dev/null
+++ b/lldb/test/API/lang/rust/enum-variant-same-name/TestRustEnumVariantSameName.py
@@ -0,0 +1,36 @@
+"""Test that lldb recognizes enum variant emitted by Rust compiler """
+import logging
+
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from RustEnumValue import RustEnumValue
+
+
+class TestRustEnumStructs(TestBase):
+ def setUp(self):
+ TestBase.setUp(self)
+ src_dir = self.getSourceDir()
+ yaml_path = os.path.join(src_dir, "main.yaml")
+ obj_path = self.getBuildArtifact("main.o")
+ self.yaml2obj(yaml_path, obj_path)
+ self.dbg.CreateTarget(obj_path)
+
+ def getFromGlobal(self, name):
+ values = self.target().FindGlobalVariables(name, 1)
+ self.assertEqual(values.GetSize(), 1)
+ return RustEnumValue(values[0])
+
+ def test_enum_instance(self):
+ # static ENUM_INSTANCE: A = A::A(B::B(10));
+ value = self.getFromGlobal("ENUM_INSTANCE").getCurrentValue()
+ self.assertEqual(value.GetType().GetDisplayTypeName(), "main::A::A")
+
+ value_b = RustEnumValue(value.GetChildAtIndex(0))
+ self.assertEqual(
+ value_b.getCurrentValue()
+ .GetChildAtIndex(0)
+ .GetData()
+ .GetUnsignedInt8(lldb.SBError(), 0),
+ 10,
+ )
diff --git a/lldb/test/API/lang/rust/enum-variant-same-name/main.rs b/lldb/test/API/lang/rust/enum-variant-same-name/main.rs
new file mode 100644
index 0000000000000..e76be3db55103
--- /dev/null
+++ b/lldb/test/API/lang/rust/enum-variant-same-name/main.rs
@@ -0,0 +1,15 @@
+/// Command:
+/// rustc -g --emit=obj --crate-type=bin -C panic=abort -C link-arg=-nostdlib main.rs && obj2yaml main.o -o main.yaml
+
+pub enum A {
+ A(B),
+}
+
+pub enum B {
+ B(u8),
+}
+
+static ENUM_INSTANCE: A = A::A(B::B(10));
+
+pub fn main() {
+}
diff --git a/lldb/test/API/lang/rust/enum-variant-same-name/main.yaml b/lldb/test/API/lang/rust/enum-variant-same-name/main.yaml
new file mode 100644
index 0000000000000..76e7cb670ace9
--- /dev/null
+++ b/lldb/test/API/lang/rust/enum-variant-same-name/main.yaml
@@ -0,0 +1,1137 @@
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+ SectionHeaderStringTable: .strtab
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x4
+ - Name: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 4883EC2889C84889D14889F248897C2408488954241048894C24188844242748893C244889E7488D3500000000440FB6C0FF15000000004883C428C3
+ - Name: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 4883EC1848897C2408488B3FE800000000E800000000884424170FB6C04883C418C3
+ - Name: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 4883EC1848897C2408E8000000004883C418C3
+ - Name: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 4883EC1848897C2410488B3FE8000000004883C418C3
+ - Name: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 4883EC1848897C2408488D7C2408E8000000004883C418C3
+ - Name: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 4883EC1848897C2410FFD74883C418C3
+ - Name: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 48897C24F8C3
+ - Name: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 31C0C3
+ - Name: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: C3
+ - Name: .text.main
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x10
+ Content: 504889F2488B05000000008A004863F7488D3D0000000031C9E80000000059C3
+ - Name: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ Type: SHT_PROGBITS
+ Flags: [ SHF_WRITE, SHF_ALLOC ]
+ AddressAlign: 0x8
+ Content: '000000000000000008000000000000000800000000000000000000000000000000000000000000000000000000000000'
+ - Name: .rodata._ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC ]
+ AddressAlign: 0x1
+ Content: 0A
+ - Name: .debug_gdb_scripts
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_MERGE, SHF_STRINGS ]
+ AddressAlign: 0x1
+ EntSize: 0x1
+ Content: 016764625F6C6F61645F727573745F7072657474795F7072696E746572732E707900
+ - Name: .debug_abbrev
+ Type: SHT_PROGBITS
+ AddressAlign: 0x1
+ Content: 011101250E1305030E10171B0E110155170000023400030E4913021800000313011D13030E0B0B88010F0000040D00030E491388010F380B0000050F004913030E33060000062400030E3E0B0B0B0000073901030E0000081301030E0B0B88010F0000092E011101120640186E0E030E3A0B3B0B491300000A34000218030E88010F3A0B3B0B491300000B1D01311311011206580B590B570B00000C05000218311300000D1D00311311011206580B5905570B00000E2F004913030E00000F05000218030E3A0B3B0B49130000101301030E0B0B320B88010F0000110D00030E491388010F380B320B0000122E016E0E030E3A0B3B0549133C19000013050049130000142E011101120640186E0E030E3A0B3B0B0000150B01110112060000163400021831130000172E011101120640186E0E030E3A0B3B054913000018050002183A0B3B054913000019150000001A3400030E49133A0B3B0B88010F02186E0E00001B330100001C190100001D2E001101120640186E0E030E3A0B3B0B6A1900001E2E004713200B00001F2E014713200B0000200500030E3A0B3B0549130000212E016E0E030E3A0B3B05200B0000223400030E88010F3A0B3B054913000023050002183A0B3B0B49130000242E011101120640186E0E030E3A0B3B05000000
+ - Name: .debug_info
+ Type: SHT_PROGBITS
+ AddressAlign: 0x1
+ Content: F00400000400000000000801000000001C0000000000000000000000000000000000000000000000000002000000003D0000000903000000000000000003B500000000000000300804000000008B000000080004000000009F000000080804000000009F000000081004000000008B000000081804000000008B000000082004000000008B000000082800059800000000000000000000000600000000070006000000000708070000000007000000000700000000080000000008080400000000B1020000080000090000000000000000220000000157000000000000000002C7590300000A03910806000000000802C1B10200000B7303000000000000000000000300000002C7550C029117790300000D6D030000000000000000000003000000041D0810000E980000000000000000000900000000000000003C0000000157000000000000000002C0C50400000F0291080000000002C1B10200000F0291100000000002C2C50400000F0291180000000002C3CC0400000F0291270000000002C4520300000E9800000000000000000007000000000700000000070000000007000000001000000000010101110000000052030000010003120000000000000000037C0259030000136003000000000000000700000000140000000000000000130000000157000000000000000005940F029108000000000594B1020000150000000000000000000000000A02910700000000010598980000000B90030000000000000000000000000000059B0516029117A603000000000EB1020000000000000E9800000000000000000000070000000010000000000101011100000000A6010000010003120000000000000000041C0859030000135402000000000700000000170000000000000000030000000157000000000000000004A909540200001802917F04A909980000000000000005BE02000000000000000000001907000000001A00000000DE020000010C01090300000000000000000000000010000000000101011B1C0400000000F502000001000000100000000001010111000000000B030000010001000010000000000101011B1C04000000002203000001000000100000000001010111000000005203000001000100001D00000000000000000100000001570000000000000000010E00060000000007010600000000050405A601000000000000000000001EBA010000011F68020000012000000000041C0854020000000700000000070000000021000000000000000006DC01010E980000000000000022000000000106DC01980000000000070000000007000000000700000000090000000000000000160000000157000000000000000007FA590300002302911007FAE60400002302910F07FA980000000EB5000000000000000E980000000000000000090000000000000000180000000157000000000000000007FA590300002302910807FAB50000002302911707FA980000000EB5000000000000000E980000000000000000140000000000000000100000000157000000000000000007FA2302911007FAB10200002302910F07FA980000000EB1020000000000000E98000000000000000000000007000000002400000000000000000600000001570000000000000000080B0218029178080B02E60400000EB5000000000000000000000600000000050805D904000000000000000000000552030000000000000000000005B5000000000000000000000000
+ - Name: .comment
+ Type: SHT_PROGBITS
+ Flags: [ SHF_MERGE, SHF_STRINGS ]
+ AddressAlign: 0x1
+ EntSize: 0x1
+ Content: 0072757374632076657273696F6E20312E38372E30202831373036376539616320323032352D30352D30392900
+ - Name: .note.GNU-stack
+ Type: SHT_PROGBITS
+ AddressAlign: 0x1
+ - Name: .eh_frame
+ Type: SHT_X86_64_UNWIND
+ Flags: [ SHF_ALLOC ]
+ AddressAlign: 0x8
+ Content: 1400000000000000017A5200017810011B0C070890010000140000001C000000000000003C00000000440E30770E08001400000034000000000000002200000000440E205D0E0800140000004C000000000000001300000000440E204E0E08001400000064000000000000001600000000440E20510E0800140000007C000000000000001800000000440E20530E08001400000094000000000000001000000000440E204B0E080010000000AC00000000000000060000000000000010000000C000000000000000030000000000000010000000D400000000000000010000000000000018000000E8000000000000002000000000410E105E0E080000000000
+ - Name: .debug_line
+ Type: SHT_PROGBITS
+ AddressAlign: 0x1
+ Content: 0D0400000400E9020000010101FB0E0D0001010101000000010000012F686F6D652F6B6976612F2E7275737475702F746F6F6C636861696E732F737461626C652D7838365F36342D756E6B6E6F776E2D6C696E75782D676E752F6C69622F727573746C69622F7372632F727573742F6C6962726172792F7374642F737263002F686F6D652F6B6976612F2E7275737475702F746F6F6C636861696E732F737461626C652D7838365F36342D756E6B6E6F776E2D6C696E75782D676E752F6C69622F727573746C69622F7372632F727573742F6C6962726172792F7374642F7372632F7379732F70726F636573732F756E6978002F686F6D652F6B6976612F2E7275737475702F746F6F6C636861696E732F737461626C652D7838365F36342D756E6B6E6F776E2D6C696E75782D676E752F6C69622F727573746C69622F7372632F727573742F6C6962726172792F7374642F7372632F737973002F686F6D652F6B6976612F2E7275737475702F746F6F6C636861696E732F737461626C652D7838365F36342D756E6B6E6F776E2D6C696E75782D676E752F6C69622F727573746C69622F7372632F727573742F6C6962726172792F636F72652F737263002F686F6D652F6B6976612F2E7275737475702F746F6F6C636861696E732F737461626C652D7838365F36342D756E6B6E6F776E2D6C696E75782D676E752F6C69622F727573746C69622F7372632F727573742F6C6962726172792F636F72652F7372632F6F7073002F686F6D652F6B6976612F2E7275737475702F746F6F6C636861696E732F737461626C652D7838365F36342D756E6B6E6F776E2D6C696E75782D676E752F6C69622F727573746C69622F7372632F727573742F6C6962726172792F636F72652F7372632F70747200006D61696E2E72730000000072742E727300010000636F6D6D6F6E2E72730002000070726F636573732E7273000100006261636B74726163652E72730003000068696E742E72730004000066756E6374696F6E2E7273000500006D6F642E727300060000000402000902000000000000000003BF0101050A0A08DD05054905020B084202050001010402000902000000000000000003C6010105460A900512063C040305090603B603D60402055D0B03CA7C3C0205000101040500090200000000000000000393010105120A940406050503C50258040505020B03C17D0102050001010407000902000000000000000003F9010105050A90060B8202050001010407000902000000000000000003F9010105050A90060B9E02050001010407000902000000000000000003F9010105050A90060B2E020500010104080009020000000000000000038A040105010A580201000101040405060A000902000000000000000003AA1301020300010105020A0009020000000000000000030E010201000101
+ - Name: .rela.text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Relocations:
+ - Offset: 0x29
+ Symbol: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ Type: R_X86_64_PC32
+ Addend: -4
+ - Offset: 0x33
+ Symbol: _ZN3std2rt19lang_start_internal17h418648f91f5be3a1E
+ Type: R_X86_64_GOTPCREL
+ Addend: -4
+ - Name: '.rela.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Relocations:
+ - Offset: 0xD
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_PLT32
+ Addend: -4
+ - Offset: 0x12
+ Symbol: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: R_X86_64_PLT32
+ Addend: -4
+ - Name: .rela.text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Relocations:
+ - Offset: 0xA
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: R_X86_64_PLT32
+ Addend: -4
+ - Name: '.rela.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Relocations:
+ - Offset: 0xD
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: R_X86_64_PLT32
+ Addend: -4
+ - Name: .rela.text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Relocations:
+ - Offset: 0xF
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_PLT32
+ Addend: -4
+ - Name: .rela.text.main
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .text.main
+ Relocations:
+ - Offset: 0x7
+ Symbol: __rustc_debug_gdb_scripts_section__
+ Type: R_X86_64_GOTPCREL
+ Addend: -4
+ - Offset: 0x13
+ Symbol: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: R_X86_64_PC32
+ Addend: -4
+ - Offset: 0x1A
+ Symbol: _ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: R_X86_64_PLT32
+ Addend: -4
+ - Name: .rela.data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ Relocations:
+ - Offset: 0x18
+ Symbol: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: R_X86_64_64
+ - Offset: 0x20
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ - Offset: 0x28
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ - Name: .rela.debug_info
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .debug_info
+ Relocations:
+ - Offset: 0x6
+ Symbol: .debug_abbrev
+ Type: R_X86_64_32
+ - Offset: 0xC
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ - Offset: 0x12
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 57
+ - Offset: 0x16
+ Symbol: .debug_line
+ Type: R_X86_64_32
+ - Offset: 0x1A
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 95
+ - Offset: 0x26
+ Symbol: .debug_ranges
+ Type: R_X86_64_32
+ - Offset: 0x2B
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 176
+ - Offset: 0x35
+ Symbol: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ Type: R_X86_64_64
+ - Offset: 0x42
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 382
+ - Offset: 0x49
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 260
+ - Offset: 0x54
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 287
+ - Offset: 0x5F
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 298
+ - Offset: 0x6A
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 304
+ - Offset: 0x75
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 314
+ - Offset: 0x80
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 324
+ - Offset: 0x90
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 277
+ - Offset: 0x99
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 274
+ - Offset: 0xA0
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 292
+ - Offset: 0xA7
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 334
+ - Offset: 0xAC
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 338
+ - Offset: 0xB1
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 341
+ - Offset: 0xB6
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 362
+ - Offset: 0xBD
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 352
+ - Offset: 0xC9
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ - Offset: 0xD7
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 943
+ - Offset: 0xDB
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1016
+ - Offset: 0xEA
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 352
+ - Offset: 0xFA
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ Addend: 26
+ - Offset: 0x116
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ Addend: 26
+ - Offset: 0x12C
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 769
+ - Offset: 0x133
+ Symbol: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: R_X86_64_64
+ - Offset: 0x141
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 879
+ - Offset: 0x145
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 922
+ - Offset: 0x153
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 352
+ - Offset: 0x161
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1744
+ - Offset: 0x16F
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1749
+ - Offset: 0x17D
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1781
+ - Offset: 0x18C
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 769
+ - Offset: 0x193
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 540
+ - Offset: 0x198
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 544
+ - Offset: 0x19D
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 552
+ - Offset: 0x1A2
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 557
+ - Offset: 0x1A7
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 564
+ - Offset: 0x1AF
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 487
+ - Offset: 0x1BB
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 573
+ - Offset: 0x1BF
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 641
+ - Offset: 0x1D5
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 835
+ - Offset: 0x1DA
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_64
+ - Offset: 0x1E8
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1034
+ - Offset: 0x1EC
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1106
+ - Offset: 0x1F6
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1796
+ - Offset: 0x201
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_64
+ Addend: 14
+ - Offset: 0x211
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1789
+ - Offset: 0x221
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_64
+ Addend: 14
+ - Offset: 0x23F
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1032
+ - Offset: 0x248
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 769
+ - Offset: 0x250
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 544
+ - Offset: 0x255
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 564
+ - Offset: 0x25D
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 487
+ - Offset: 0x269
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 695
+ - Offset: 0x26D
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 747
+ - Offset: 0x280
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 869
+ - Offset: 0x285
+ Symbol: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: R_X86_64_64
+ - Offset: 0x293
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1616
+ - Offset: 0x297
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1703
+ - Offset: 0x2B6
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 357
+ - Offset: 0x2C0
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 352
+ - Offset: 0x2C5
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 471
+ - Offset: 0x2D2
+ Symbol: .rodata._ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ Type: R_X86_64_64
+ - Offset: 0x2DA
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 496
+ - Offset: 0x2DF
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 485
+ - Offset: 0x2E9
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 485
+ - Offset: 0x2F6
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 485
+ - Offset: 0x2FE
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 487
+ - Offset: 0x30C
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 491
+ - Offset: 0x316
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 491
+ - Offset: 0x323
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 491
+ - Offset: 0x32B
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 487
+ - Offset: 0x339
+ Symbol: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: R_X86_64_64
+ - Offset: 0x347
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1710
+ - Offset: 0x34B
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 352
+ - Offset: 0x353
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 493
+ - Offset: 0x35A
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 648
+ - Offset: 0x365
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 652
+ - Offset: 0x37A
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 754
+ - Offset: 0x387
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 759
+ - Offset: 0x38C
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 764
+ - Offset: 0x391
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 771
+ - Offset: 0x395
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 815
+ - Offset: 0x3A2
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 769
+ - Offset: 0x3A7
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 829
+ - Offset: 0x3B6
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 845
+ - Offset: 0x3BB
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 849
+ - Offset: 0x3C0
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 858
+ - Offset: 0x3C5
+ Symbol: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: R_X86_64_64
+ - Offset: 0x3D3
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1155
+ - Offset: 0x3D7
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1246
+ - Offset: 0x3FA
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1145
+ - Offset: 0x403
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1150
+ - Offset: 0x409
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: R_X86_64_64
+ - Offset: 0x417
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1302
+ - Offset: 0x41B
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1246
+ - Offset: 0x43E
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1145
+ - Offset: 0x447
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1150
+ - Offset: 0x44D
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: R_X86_64_64
+ - Offset: 0x45B
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1361
+ - Offset: 0x45F
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1420
+ - Offset: 0x47E
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1145
+ - Offset: 0x487
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1150
+ - Offset: 0x490
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 865
+ - Offset: 0x495
+ Symbol: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: R_X86_64_64
+ - Offset: 0x4A3
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1440
+ - Offset: 0x4A7
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1560
+ - Offset: 0x4BE
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 769
+ - Offset: 0x4C6
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 937
+ - Offset: 0x4D1
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1764
+ - Offset: 0x4DE
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1754
+ - Offset: 0x4EB
+ Symbol: .debug_str
+ Type: R_X86_64_32
+ Addend: 1798
+ - Name: .rela.debug_aranges
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .debug_aranges
+ Relocations:
+ - Offset: 0x6
+ Symbol: .debug_info
+ Type: R_X86_64_32
+ - Offset: 0x10
+ Symbol: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ Type: R_X86_64_64
+ - Offset: 0x20
+ Symbol: .rodata._ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ Type: R_X86_64_64
+ - Offset: 0x30
+ Symbol: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: R_X86_64_64
+ - Offset: 0x40
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ - Offset: 0x50
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_64
+ - Offset: 0x60
+ Symbol: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: R_X86_64_64
+ - Offset: 0x70
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: R_X86_64_64
+ - Offset: 0x80
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: R_X86_64_64
+ - Offset: 0x90
+ Symbol: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: R_X86_64_64
+ - Offset: 0xA0
+ Symbol: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: R_X86_64_64
+ - Offset: 0xB0
+ Symbol: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: R_X86_64_64
+ - Name: .rela.debug_ranges
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .debug_ranges
+ Relocations:
+ - Symbol: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: R_X86_64_64
+ - Offset: 0x8
+ Symbol: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: R_X86_64_64
+ Addend: 60
+ - Offset: 0x10
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ - Offset: 0x18
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ Addend: 34
+ - Offset: 0x20
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_64
+ - Offset: 0x28
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_64
+ Addend: 19
+ - Offset: 0x30
+ Symbol: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: R_X86_64_64
+ - Offset: 0x38
+ Symbol: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: R_X86_64_64
+ Addend: 22
+ - Offset: 0x40
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: R_X86_64_64
+ - Offset: 0x48
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: R_X86_64_64
+ Addend: 24
+ - Offset: 0x50
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: R_X86_64_64
+ - Offset: 0x58
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: R_X86_64_64
+ Addend: 16
+ - Offset: 0x60
+ Symbol: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: R_X86_64_64
+ - Offset: 0x68
+ Symbol: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: R_X86_64_64
+ Addend: 6
+ - Offset: 0x70
+ Symbol: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: R_X86_64_64
+ - Offset: 0x78
+ Symbol: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: R_X86_64_64
+ Addend: 3
+ - Offset: 0x80
+ Symbol: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: R_X86_64_64
+ - Offset: 0x88
+ Symbol: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: R_X86_64_64
+ Addend: 1
+ - Name: .rela.eh_frame
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .eh_frame
+ Relocations:
+ - Offset: 0x20
+ Symbol: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: R_X86_64_PC32
+ - Offset: 0x38
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_PC32
+ - Offset: 0x50
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_PC32
+ - Offset: 0x68
+ Symbol: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: R_X86_64_PC32
+ - Offset: 0x80
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: R_X86_64_PC32
+ - Offset: 0x98
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: R_X86_64_PC32
+ - Offset: 0xB0
+ Symbol: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: R_X86_64_PC32
+ - Offset: 0xC4
+ Symbol: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: R_X86_64_PC32
+ - Offset: 0xD8
+ Symbol: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: R_X86_64_PC32
+ - Offset: 0xEC
+ Symbol: .text.main
+ Type: R_X86_64_PC32
+ - Name: .rela.debug_line
+ Type: SHT_RELA
+ Flags: [ SHF_INFO_LINK ]
+ Link: .symtab
+ AddressAlign: 0x8
+ Info: .debug_line
+ Relocations:
+ - Offset: 0x2F8
+ Symbol: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: R_X86_64_64
+ - Offset: 0x31B
+ Symbol: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: R_X86_64_64
+ - Offset: 0x34B
+ Symbol: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: R_X86_64_64
+ - Offset: 0x376
+ Symbol: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: R_X86_64_64
+ - Offset: 0x393
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: R_X86_64_64
+ - Offset: 0x3B0
+ Symbol: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: R_X86_64_64
+ - Offset: 0x3CD
+ Symbol: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: R_X86_64_64
+ - Offset: 0x3EA
+ Symbol: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: R_X86_64_64
+ - Offset: 0x401
+ Symbol: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: R_X86_64_64
+ - Type: SectionHeaderTable
+ Sections:
+ - Name: .strtab
+ - Name: .text
+ - Name: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ - Name: .rela.text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ - Name: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ - Name: '.rela.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ - Name: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ - Name: .rela.text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ - Name: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ - Name: '.rela.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ - Name: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ - Name: .rela.text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ - Name: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ - Name: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ - Name: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ - Name: .text._ZN4main4main17h5659c6c02e5cd445E
+ - Name: .text.main
+ - Name: .rela.text.main
+ - Name: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ - Name: .rela.data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ - Name: .rodata._ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ - Name: .debug_gdb_scripts
+ - Name: .debug_abbrev
+ - Name: .debug_info
+ - Name: .rela.debug_info
+ - Name: .debug_aranges
+ - Name: .rela.debug_aranges
+ - Name: .debug_ranges
+ - Name: .rela.debug_ranges
+ - Name: .debug_str
+ - Name: .comment
+ - Name: .note.GNU-stack
+ - Name: .eh_frame
+ - Name: .rela.eh_frame
+ - Name: .debug_line
+ - Name: .rela.debug_line
+ - Name: .symtab
+Symbols:
+ - Name: main.5f6bf0c8e9d0afce-cgu.0
+ Type: STT_FILE
+ Index: SHN_ABS
+ - Name: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: STT_SECTION
+ Section: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ - Name: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: STT_SECTION
+ Section: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ - Name: '_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Type: STT_FUNC
+ Section: '.text._ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ Size: 0x22
+ - Name: _ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: STT_FUNC
+ Section: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Size: 0x13
+ - Name: '_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: STT_FUNC
+ Section: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Size: 0x3
+ - Name: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ Type: STT_SECTION
+ Section: .text._ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ - Name: _ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: STT_FUNC
+ Section: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Size: 0x10
+ - Name: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: STT_SECTION
+ Section: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ - Name: '_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Type: STT_FUNC
+ Section: '.text._ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ Size: 0x16
+ - Name: _ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: STT_FUNC
+ Section: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Size: 0x18
+ - Name: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ Type: STT_SECTION
+ Section: .text._ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ - Name: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ Type: STT_SECTION
+ Section: .text._ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ - Name: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: STT_SECTION
+ Section: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ - Name: '_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Type: STT_FUNC
+ Section: '.text._ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ Size: 0x6
+ - Name: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ Type: STT_SECTION
+ Section: '.text._ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ - Name: .text._ZN4main4main17h5659c6c02e5cd445E
+ Type: STT_SECTION
+ Section: .text._ZN4main4main17h5659c6c02e5cd445E
+ - Name: _ZN4main4main17h5659c6c02e5cd445E
+ Type: STT_FUNC
+ Section: .text._ZN4main4main17h5659c6c02e5cd445E
+ Size: 0x1
+ - Name: .text.main
+ Type: STT_SECTION
+ Section: .text.main
+ - Name: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ Type: STT_SECTION
+ Section: .data.rel.ro..Lanon.4a406b9d9c1243847b49ddffb2385826.0
+ - Name: _ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ Type: STT_OBJECT
+ Section: .rodata._ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ Size: 0x1
+ - Name: .rodata._ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ Type: STT_SECTION
+ Section: .rodata._ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ - Name: .debug_abbrev
+ Type: STT_SECTION
+ Section: .debug_abbrev
+ - Name: .debug_info
+ Type: STT_SECTION
+ Section: .debug_info
+ - Name: .debug_ranges
+ Type: STT_SECTION
+ Section: .debug_ranges
+ - Name: .debug_str
+ Type: STT_SECTION
+ Section: .debug_str
+ - Name: .debug_line
+ Type: STT_SECTION
+ Section: .debug_line
+ - Name: _ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Type: STT_FUNC
+ Section: .text._ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ Binding: STB_GLOBAL
+ Size: 0x3C
+ Other: [ STV_HIDDEN ]
+ - Name: _ZN3std2rt19lang_start_internal17h418648f91f5be3a1E
+ Binding: STB_GLOBAL
+ - Name: main
+ Type: STT_FUNC
+ Section: .text.main
+ Binding: STB_GLOBAL
+ Size: 0x20
+ - Name: __rustc_debug_gdb_scripts_section__
+ Type: STT_OBJECT
+ Section: .debug_gdb_scripts
+ Binding: STB_WEAK
+ Size: 0x22
+DWARF:
+ debug_str:
+ - 'clang LLVM (rustc version 1.87.0 (17067e9ac 2025-05-09))'
+ - 'main.rs/@/main.5f6bf0c8e9d0afce-cgu.0'
+ - '/home/kiva/upstream/llvm-upstream/lldb/test/API/lang/rust/enum-variant-same-name'
+ - '<std::rt::lang_start::{closure_env#0}<()> as core::ops::function::Fn<()>>::{vtable}'
+ - drop_in_place
+ - '()'
+ - '*const ()'
+ - size
+ - usize
+ - align
+ - __method3
+ - __method4
+ - __method5
+ - std
+ - rt
+ - lang_start
+ - main
+ - 'fn()'
+ - '{closure_env#0}<()>'
+ - '<std::rt::lang_start::{closure_env#0}<()> as core::ops::function::Fn<()>>::{vtable_type}'
+ - ENUM_INSTANCE
+ - A
+ - __0
+ - B
+ - u8
+ - _ZN4main13ENUM_INSTANCE17hc6db515181ea378fE
+ - sys
+ - process
+ - unix
+ - common
+ - ExitCode
+ - _ZN3std3sys7process4unix6common8ExitCode6as_i3217h7893c1c2ab39ed8fE
+ - as_i32
+ - i32
+ - '&std::sys::process::unix::common::ExitCode'
+ - _ZN3std7process8ExitCode6to_i3217habce61080992bc43E
+ - to_i32
+ - self
+ - core
+ - hint
+ - T
+ - _ZN4core4hint9black_box17h29a7c52ab9efa45eE
+ - 'black_box<()>'
+ - dummy
+ - backtrace
+ - ops
+ - function
+ - FnOnce
+ - ptr
+ - '{impl#59}'
+ - _ZN3std2rt10lang_start17hcb2a6a78164896cfE
+ - 'lang_start<()>'
+ - isize
+ - '_ZN3std2rt10lang_start28_$u7b$$u7b$closure$u7d$$u7d$17hda4568952b4f838eE'
+ - '{closure#0}<()>'
+ - F
+ - _ZN3std3sys9backtrace28__rust_begin_short_backtrace17h4c89f1d03cb386ebE
+ - '__rust_begin_short_backtrace<fn(), ()>'
+ - Self
+ - Args
+ - '_ZN4core3ops8function6FnOnce40call_once$u7b$$u7b$vtable.shim$u7d$$u7d$17h356d5dadf319082fE'
+ - 'call_once<std::rt::lang_start::{closure_env#0}<()>, ()>'
+ - _ZN4core3ops8function6FnOnce9call_once17h21112f971fb5dae8E
+ - _ZN4core3ops8function6FnOnce9call_once17hf55c273de81f71dfE
+ - 'call_once<fn(), ()>'
+ - '_ZN4core3ptr85drop_in_place$LT$std..rt..lang_start$LT$$LP$$RP$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h623f70e9f0cf3066E'
+ - 'drop_in_place<std::rt::lang_start::{closure_env#0}<()>>'
+ - '_ZN54_$LT$$LP$$RP$$u20$as$u20$std..process..Termination$GT$6report17h10aa5c9c6135be01E'
+ - report
+ - _ZN4main4main17h5659c6c02e5cd445E
+ - argc
+ - argv
+ - '*const u8'
+ - '*const *const u8'
+ - sigpipe
+ - result
+ - f
+ - '*mut std::rt::lang_start::{closure_env#0}<()>'
+ debug_aranges:
+ - Length: 0xCC
+ Version: 2
+ CuOffset: 0x0
+ AddressSize: 0x8
+ Descriptors:
+ - Address: 0x0
+ Length: 0x30
+ - Address: 0x0
+ Length: 0x1
+ - Address: 0x0
+ Length: 0x3C
+ - Address: 0x0
+ Length: 0x22
+ - Address: 0x0
+ Length: 0x13
+ - Address: 0x0
+ Length: 0x16
+ - Address: 0x0
+ Length: 0x18
+ - Address: 0x0
+ Length: 0x10
+ - Address: 0x0
+ Length: 0x6
+ - Address: 0x0
+ Length: 0x3
+ - Address: 0x0
+ Length: 0x1
+ debug_ranges:
+ - Offset: 0x0
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x10
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x20
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x30
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x40
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x50
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x60
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x70
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x80
+ AddrSize: 0x8
+ Entries: []
+ - Offset: 0x90
+ AddrSize: 0x8
+ Entries: []
+...
More information about the lldb-commits
mailing list