Skip to content

Commit 5e38a3f

Browse files
committed
added test for DWARF5
1 parent cda8046 commit 5e38a3f

File tree

3 files changed

+529
-0
lines changed

3 files changed

+529
-0
lines changed
Lines changed: 226 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,226 @@
1+
# clang++ -g2 -gdwarf-5 -gsplit-dwarf=split -S helper.cpp
2+
# int getReturn() {
3+
# return 0;
4+
# }
5+
.file "helper.cpp"
6+
.text
7+
.globl _Z9getReturnv # -- Begin function _Z9getReturnv
8+
.p2align 4
9+
.type _Z9getReturnv,@function
10+
_Z9getReturnv: # @_Z9getReturnv
11+
.Lfunc_begin0:
12+
.file 0 "." "helper.cpp" md5 0xc7d7879297b54325c71b3e0cfbb65e2d
13+
.loc 0 1 0 # helper.cpp:1:0
14+
.cfi_startproc
15+
# %bb.0: # %entry
16+
pushq %rbp
17+
.cfi_def_cfa_offset 16
18+
.cfi_offset %rbp, -16
19+
movq %rsp, %rbp
20+
.cfi_def_cfa_register %rbp
21+
.Ltmp0:
22+
.loc 0 2 3 prologue_end # helper.cpp:2:3
23+
xorl %eax, %eax
24+
.loc 0 2 3 epilogue_begin is_stmt 0 # helper.cpp:2:3
25+
popq %rbp
26+
.cfi_def_cfa %rsp, 8
27+
retq
28+
.Ltmp1:
29+
.Lfunc_end0:
30+
.size _Z9getReturnv, .Lfunc_end0-_Z9getReturnv
31+
.cfi_endproc
32+
# -- End function
33+
.section .debug_abbrev,"",@progbits
34+
.byte 1 # Abbreviation Code
35+
.byte 74 # DW_TAG_skeleton_unit
36+
.byte 0 # DW_CHILDREN_no
37+
.byte 16 # DW_AT_stmt_list
38+
.byte 23 # DW_FORM_sec_offset
39+
.byte 114 # DW_AT_str_offsets_base
40+
.byte 23 # DW_FORM_sec_offset
41+
.byte 27 # DW_AT_comp_dir
42+
.byte 37 # DW_FORM_strx1
43+
.ascii "\264B" # DW_AT_GNU_pubnames
44+
.byte 25 # DW_FORM_flag_present
45+
.byte 118 # DW_AT_dwo_name
46+
.byte 37 # DW_FORM_strx1
47+
.byte 17 # DW_AT_low_pc
48+
.byte 27 # DW_FORM_addrx
49+
.byte 18 # DW_AT_high_pc
50+
.byte 6 # DW_FORM_data4
51+
.byte 115 # DW_AT_addr_base
52+
.byte 23 # DW_FORM_sec_offset
53+
.byte 0 # EOM(1)
54+
.byte 0 # EOM(2)
55+
.byte 0 # EOM(3)
56+
.section .debug_info,"",@progbits
57+
.Lcu_begin0:
58+
.long .Ldebug_info_end0-.Ldebug_info_start0 # Length of Unit
59+
.Ldebug_info_start0:
60+
.short 5 # DWARF version number
61+
.byte 4 # DWARF Unit Type
62+
.byte 8 # Address Size (in bytes)
63+
.long .debug_abbrev # Offset Into Abbrev. Section
64+
.quad 5976014880088676049
65+
.byte 1 # Abbrev [1] 0x14:0x14 DW_TAG_skeleton_unit
66+
.long .Lline_table_start0 # DW_AT_stmt_list
67+
.long .Lstr_offsets_base0 # DW_AT_str_offsets_base
68+
.byte 0 # DW_AT_comp_dir
69+
# DW_AT_GNU_pubnames
70+
.byte 1 # DW_AT_dwo_name
71+
.byte 0 # DW_AT_low_pc
72+
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
73+
.long .Laddr_table_base0 # DW_AT_addr_base
74+
.Ldebug_info_end0:
75+
.section .debug_str_offsets,"",@progbits
76+
.long 12 # Length of String Offsets Set
77+
.short 5
78+
.short 0
79+
.Lstr_offsets_base0:
80+
.section .debug_str,"MS",@progbits,1
81+
.Lskel_string0:
82+
.asciz "." # string offset=0
83+
.Lskel_string1:
84+
.asciz "helper.dwo" # string offset=2
85+
.section .debug_str_offsets,"",@progbits
86+
.long .Lskel_string0
87+
.long .Lskel_string1
88+
.section .debug_str_offsets.dwo,"e",@progbits
89+
.long 28 # Length of String Offsets Set
90+
.short 5
91+
.short 0
92+
.section .debug_str.dwo,"eMS",@progbits,1
93+
.Linfo_string0:
94+
.asciz "_Z9getReturnv" # string offset=0
95+
.Linfo_string1:
96+
.asciz "getReturn" # string offset=14
97+
.Linfo_string2:
98+
.asciz "int" # string offset=24
99+
.Linfo_string3:
100+
.asciz "clang version 22.0.0" # string offset=28
101+
.Linfo_string4:
102+
.asciz "helper.cpp" # string offset=49
103+
.Linfo_string5:
104+
.asciz "helper.dwo" # string offset=60
105+
.section .debug_str_offsets.dwo,"e",@progbits
106+
.long 0
107+
.long 14
108+
.long 24
109+
.long 28
110+
.long 49
111+
.long 60
112+
.section .debug_info.dwo,"e",@progbits
113+
.long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit
114+
.Ldebug_info_dwo_start0:
115+
.short 5 # DWARF version number
116+
.byte 5 # DWARF Unit Type
117+
.byte 8 # Address Size (in bytes)
118+
.long 0 # Offset Into Abbrev. Section
119+
.quad 5976014880088676049
120+
.byte 1 # Abbrev [1] 0x14:0x1b DW_TAG_compile_unit
121+
.byte 3 # DW_AT_producer
122+
.short 33 # DW_AT_language
123+
.byte 4 # DW_AT_name
124+
.byte 5 # DW_AT_dwo_name
125+
.byte 2 # Abbrev [2] 0x1a:0x10 DW_TAG_subprogram
126+
.byte 0 # DW_AT_low_pc
127+
.long .Lfunc_end0-.Lfunc_begin0 # DW_AT_high_pc
128+
.byte 1 # DW_AT_frame_base
129+
.byte 86
130+
.byte 0 # DW_AT_linkage_name
131+
.byte 1 # DW_AT_name
132+
.byte 0 # DW_AT_decl_file
133+
.byte 1 # DW_AT_decl_line
134+
.long 42 # DW_AT_type
135+
# DW_AT_external
136+
.byte 3 # Abbrev [3] 0x2a:0x4 DW_TAG_base_type
137+
.byte 2 # DW_AT_name
138+
.byte 5 # DW_AT_encoding
139+
.byte 4 # DW_AT_byte_size
140+
.byte 0 # End Of Children Mark
141+
.Ldebug_info_dwo_end0:
142+
.section .debug_abbrev.dwo,"e",@progbits
143+
.byte 1 # Abbreviation Code
144+
.byte 17 # DW_TAG_compile_unit
145+
.byte 1 # DW_CHILDREN_yes
146+
.byte 37 # DW_AT_producer
147+
.byte 37 # DW_FORM_strx1
148+
.byte 19 # DW_AT_language
149+
.byte 5 # DW_FORM_data2
150+
.byte 3 # DW_AT_name
151+
.byte 37 # DW_FORM_strx1
152+
.byte 118 # DW_AT_dwo_name
153+
.byte 37 # DW_FORM_strx1
154+
.byte 0 # EOM(1)
155+
.byte 0 # EOM(2)
156+
.byte 2 # Abbreviation Code
157+
.byte 46 # DW_TAG_subprogram
158+
.byte 0 # DW_CHILDREN_no
159+
.byte 17 # DW_AT_low_pc
160+
.byte 27 # DW_FORM_addrx
161+
.byte 18 # DW_AT_high_pc
162+
.byte 6 # DW_FORM_data4
163+
.byte 64 # DW_AT_frame_base
164+
.byte 24 # DW_FORM_exprloc
165+
.byte 110 # DW_AT_linkage_name
166+
.byte 37 # DW_FORM_strx1
167+
.byte 3 # DW_AT_name
168+
.byte 37 # DW_FORM_strx1
169+
.byte 58 # DW_AT_decl_file
170+
.byte 11 # DW_FORM_data1
171+
.byte 59 # DW_AT_decl_line
172+
.byte 11 # DW_FORM_data1
173+
.byte 73 # DW_AT_type
174+
.byte 19 # DW_FORM_ref4
175+
.byte 63 # DW_AT_external
176+
.byte 25 # DW_FORM_flag_present
177+
.byte 0 # EOM(1)
178+
.byte 0 # EOM(2)
179+
.byte 3 # Abbreviation Code
180+
.byte 36 # DW_TAG_base_type
181+
.byte 0 # DW_CHILDREN_no
182+
.byte 3 # DW_AT_name
183+
.byte 37 # DW_FORM_strx1
184+
.byte 62 # DW_AT_encoding
185+
.byte 11 # DW_FORM_data1
186+
.byte 11 # DW_AT_byte_size
187+
.byte 11 # DW_FORM_data1
188+
.byte 0 # EOM(1)
189+
.byte 0 # EOM(2)
190+
.byte 0 # EOM(3)
191+
.section .debug_addr,"",@progbits
192+
.long .Ldebug_addr_end0-.Ldebug_addr_start0 # Length of contribution
193+
.Ldebug_addr_start0:
194+
.short 5 # DWARF version number
195+
.byte 8 # Address size
196+
.byte 0 # Segment selector size
197+
.Laddr_table_base0:
198+
.quad .Lfunc_begin0
199+
.Ldebug_addr_end0:
200+
.section .debug_gnu_pubnames,"",@progbits
201+
.long .LpubNames_end0-.LpubNames_start0 # Length of Public Names Info
202+
.LpubNames_start0:
203+
.short 2 # DWARF Version
204+
.long .Lcu_begin0 # Offset of Compilation Unit Info
205+
.long 40 # Compilation Unit Length
206+
.long 26 # DIE offset
207+
.byte 48 # Attributes: FUNCTION, EXTERNAL
208+
.asciz "getReturn" # External Name
209+
.long 0 # End Mark
210+
.LpubNames_end0:
211+
.section .debug_gnu_pubtypes,"",@progbits
212+
.long .LpubTypes_end0-.LpubTypes_start0 # Length of Public Types Info
213+
.LpubTypes_start0:
214+
.short 2 # DWARF Version
215+
.long .Lcu_begin0 # Offset of Compilation Unit Info
216+
.long 40 # Compilation Unit Length
217+
.long 42 # DIE offset
218+
.byte 144 # Attributes: TYPE, STATIC
219+
.asciz "int" # External Name
220+
.long 0 # End Mark
221+
.LpubTypes_end0:
222+
.ident "clang version 22.0.0"
223+
.section ".note.GNU-stack","",@progbits
224+
.addrsig
225+
.section .debug_line,"",@progbits
226+
.Lline_table_start0:

0 commit comments

Comments
 (0)