1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359
|
Contents of the .debug_info section:
Compilation Unit @ offset 0x0:
Length: 0x160 \(32-bit\)
Version: 5
Abbrev Offset: 0x0
Pointer Size: 8
<0><c>: Abbrev Number: 6 \(DW_TAG_compile_unit\)
<d> DW_AT_producer : \(indirect string, offset: 0x43\): GNU C11 7.0.1 20170218 \(experimental\) -mtune=generic -march=x86-64 -gdwarf-5 -O2
<11> DW_AT_language : 29 \(C11\)
<12> DW_AT_name : \(indirect line string, offset: 0x14\): main.c
<16> DW_AT_comp_dir : \(indirect line string, offset: 0x0\):
<1a> DW_AT_ranges : 0xc
<1e> DW_AT_low_pc : 0x0
<26> DW_AT_stmt_list : 0x0
<1><2a>: Abbrev Number: 1 \(DW_TAG_base_type\)
<2b> DW_AT_byte_size : 1
<2c> DW_AT_encoding : 8 \(unsigned char\)
<2d> DW_AT_name : \(indirect string, offset: 0x94\): unsigned char
<1><31>: Abbrev Number: 1 \(DW_TAG_base_type\)
<32> DW_AT_byte_size : 2
<33> DW_AT_encoding : 7 \(unsigned\)
<34> DW_AT_name : \(indirect string, offset: 0xbc\): short unsigned int
<1><38>: Abbrev Number: 1 \(DW_TAG_base_type\)
<39> DW_AT_byte_size : 4
<3a> DW_AT_encoding : 7 \(unsigned\)
<3b> DW_AT_name : \(indirect string, offset: 0x0\): unsigned int
<1><3f>: Abbrev Number: 1 \(DW_TAG_base_type\)
<40> DW_AT_byte_size : 8
<41> DW_AT_encoding : 7 \(unsigned\)
<42> DW_AT_name : \(indirect string, offset: 0x2a\): long unsigned int
<1><46>: Abbrev Number: 1 \(DW_TAG_base_type\)
<47> DW_AT_byte_size : 1
<48> DW_AT_encoding : 6 \(signed char\)
<49> DW_AT_name : \(indirect string, offset: 0x19\): signed char
<1><4d>: Abbrev Number: 1 \(DW_TAG_base_type\)
<4e> DW_AT_byte_size : 2
<4f> DW_AT_encoding : 5 \(signed\)
<50> DW_AT_name : \(indirect string, offset: 0xef\): short int
<1><54>: Abbrev Number: 7 \(DW_TAG_base_type\)
<55> DW_AT_byte_size : 4
<56> DW_AT_encoding : 5 \(signed\)
<57> DW_AT_name : int
<1><5b>: Abbrev Number: 1 \(DW_TAG_base_type\)
<5c> DW_AT_byte_size : 8
<5d> DW_AT_encoding : 5 \(signed\)
<5e> DW_AT_name : \(indirect string, offset: 0xae\): long int
<1><62>: Abbrev Number: 1 \(DW_TAG_base_type\)
<63> DW_AT_byte_size : 8
<64> DW_AT_encoding : 7 \(unsigned\)
<65> DW_AT_name : \(indirect string, offset: 0xff\): sizetype
<1><69>: Abbrev Number: 3 \(DW_TAG_pointer_type\)
<6a> DW_AT_byte_size : 8
<6a> DW_AT_type : <0x6e>
<1><6e>: Abbrev Number: 1 \(DW_TAG_base_type\)
<6f> DW_AT_byte_size : 1
<70> DW_AT_encoding : 6 \(signed char\)
<71> DW_AT_name : \(indirect string, offset: 0xa2\): char
<1><75>: Abbrev Number: 8 \(DW_TAG_variable\)
<76> DW_AT_name : \(indirect string, offset: 0xd9\): __environ
<7a> DW_AT_decl_file : 2
<7b> DW_AT_decl_line : 546
<7d> DW_AT_type : <0x81>
<81> DW_AT_external : 1
<81> DW_AT_declaration : 1
<1><81>: Abbrev Number: 3 \(DW_TAG_pointer_type\)
<82> DW_AT_byte_size : 8
<82> DW_AT_type : <0x69>
<1><86>: Abbrev Number: 2 \(DW_TAG_variable\)
<87> DW_AT_name : \(indirect string, offset: 0xe8\): optarg
<8b> DW_AT_decl_file : 3
<8b> DW_AT_decl_line : 57
<8c> DW_AT_type : <0x69>
<90> DW_AT_external : 1
<90> DW_AT_declaration : 1
<1><90>: Abbrev Number: 2 \(DW_TAG_variable\)
<91> DW_AT_name : \(indirect string, offset: 0xa7\): optind
<95> DW_AT_decl_file : 3
<95> DW_AT_decl_line : 71
<96> DW_AT_type : <0x54>
<9a> DW_AT_external : 1
<9a> DW_AT_declaration : 1
<1><9a>: Abbrev Number: 2 \(DW_TAG_variable\)
<9b> DW_AT_name : \(indirect string, offset: 0x3c\): opterr
<9f> DW_AT_decl_file : 3
<9f> DW_AT_decl_line : 76
<a0> DW_AT_type : <0x54>
<a4> DW_AT_external : 1
<a4> DW_AT_declaration : 1
<1><a4>: Abbrev Number: 2 \(DW_TAG_variable\)
<a5> DW_AT_name : \(indirect string, offset: 0xd\): optopt
<a9> DW_AT_decl_file : 3
<a9> DW_AT_decl_line : 80
<aa> DW_AT_type : <0x54>
<ae> DW_AT_external : 1
<ae> DW_AT_declaration : 1
<1><ae>: Abbrev Number: 4 \(DW_TAG_variable\)
<af> DW_AT_name : \(indirect string, offset: 0x25\): xvar
<b3> DW_AT_decl_file : 1
<b3> DW_AT_decl_line : 2
<b4> DW_AT_type : <0x54>
<b8> DW_AT_external : 1
<b8> DW_AT_location : 9 byte block: 3 (0|34) (0|12) 0 0 0 0 (0|12) (0|34) \(DW_OP_addr: 1234\)
<1><c2>: Abbrev Number: 4 \(DW_TAG_variable\)
<c3> DW_AT_name : \(indirect string, offset: 0xcf\): yvar
<c7> DW_AT_decl_file : 1
<c7> DW_AT_decl_line : 3
<c8> DW_AT_type : <0x54>
<cc> DW_AT_external : 1
<cc> DW_AT_location : 9 byte block: 3 (0|34) (0|12) 0 0 0 0 (0|12) (0|34) \(DW_OP_addr: 1234\)
<1><d6>: Abbrev Number: 4 \(DW_TAG_variable\)
<d7> DW_AT_name : \(indirect string, offset: 0xd4\): pvar
<db> DW_AT_decl_file : 1
<db> DW_AT_decl_line : 4
<dc> DW_AT_type : <0xea>
<e0> DW_AT_external : 1
<e0> DW_AT_location : 9 byte block: 3 (0|34) (0|12) 0 0 0 0 (0|12) (0|34) \(DW_OP_addr: 1234\)
<1><ea>: Abbrev Number: 3 \(DW_TAG_pointer_type\)
<eb> DW_AT_byte_size : 8
<eb> DW_AT_type : <0x54>
<1><ef>: Abbrev Number: 9 \(DW_TAG_subprogram\)
<f0> DW_AT_external : 1
<f0> DW_AT_name : \(indirect string, offset: 0x14\): main
<f4> DW_AT_decl_file : 1
<f5> DW_AT_decl_line : 6
<f6> DW_AT_prototyped : 1
<f6> DW_AT_type : <0x54>
<fa> DW_AT_low_pc : 0x1234
<102> DW_AT_high_pc : 0x5678
<10a> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\)
<10c> DW_AT_call_all_calls: 1
<10c> DW_AT_sibling : <0x13e>
<2><110>: Abbrev Number: 5 \(DW_TAG_formal_parameter\)
<111> DW_AT_name : \(indirect string, offset: 0xb7\): argc
<115> DW_AT_decl_file : 1
<115> DW_AT_decl_line : 6
<115> DW_AT_type : <0x54>
<119> DW_AT_location : 0xc \(location list\)
<2><11d>: Abbrev Number: 5 \(DW_TAG_formal_parameter\)
<11e> DW_AT_name : \(indirect string, offset: 0x108\): argv
<122> DW_AT_decl_file : 1
<122> DW_AT_decl_line : 6
<122> DW_AT_type : <0x81>
<126> DW_AT_location : 0x23 \(location list\)
<2><12a>: Abbrev Number: 10 \(DW_TAG_call_site\)
<12b> DW_AT_call_return_pc: 0x12345
<133> DW_AT_call_origin : <0x157>
<3><137>: Abbrev Number: 11 \(DW_TAG_call_site_parameter\)
<138> DW_AT_location : 1 byte block: 55 \(DW_OP_reg5 \([^()]*\)\)
<13a> DW_AT_call_value : 1 byte block: 30 \(DW_OP_lit0\)
<3><13c>: Abbrev Number: 0
<2><13d>: Abbrev Number: 0
<1><13e>: Abbrev Number: 12 \(DW_TAG_subprogram\)
<13f> DW_AT_external : 1
<13f> DW_AT_name : \(indirect string, offset: 0xe3\): func
<143> DW_AT_decl_file : 1
<144> DW_AT_decl_line : 5
<145> DW_AT_prototyped : 1
<145> DW_AT_low_pc : 0x1234
<14d> DW_AT_high_pc : 0x5678
<155> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\)
<157> DW_AT_call_all_calls: 1
<1><157>: Abbrev Number: 13 \(DW_TAG_subprogram\)
<158> DW_AT_external : 1
<158> DW_AT_declaration : 1
<158> DW_AT_linkage_name: \(indirect string, offset: 0xf9\): alarm
<15c> DW_AT_name : \(indirect string, offset: 0xf9\): alarm
<160> DW_AT_decl_file : 2
<161> DW_AT_decl_line : 435
<1><163>: Abbrev Number: 0
Contents of the .debug_abbrev section:
Number TAG \(0x0\)
1 DW_TAG_base_type \[no children\]
DW_AT_byte_size DW_FORM_data1
DW_AT_encoding DW_FORM_data1
DW_AT_name DW_FORM_strp
DW_AT value: 0 DW_FORM value: 0
2 DW_TAG_variable \[no children\]
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_implicit_const: 3
DW_AT_decl_line DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_external DW_FORM_flag_present
DW_AT_declaration DW_FORM_flag_present
DW_AT value: 0 DW_FORM value: 0
3 DW_TAG_pointer_type \[no children\]
DW_AT_byte_size DW_FORM_implicit_const: 8
DW_AT_type DW_FORM_ref4
DW_AT value: 0 DW_FORM value: 0
4 DW_TAG_variable \[no children\]
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_implicit_const: 1
DW_AT_decl_line DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_external DW_FORM_flag_present
DW_AT_location DW_FORM_exprloc
DW_AT value: 0 DW_FORM value: 0
5 DW_TAG_formal_parameter \[no children\]
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_implicit_const: 1
DW_AT_decl_line DW_FORM_implicit_const: 6
DW_AT_type DW_FORM_ref4
DW_AT_location DW_FORM_sec_offset
DW_AT value: 0 DW_FORM value: 0
6 DW_TAG_compile_unit \[has children\]
DW_AT_producer DW_FORM_strp
DW_AT_language DW_FORM_data1
DW_AT_name DW_FORM_line_strp
DW_AT_comp_dir DW_FORM_line_strp
DW_AT_ranges DW_FORM_sec_offset
DW_AT_low_pc DW_FORM_addr
DW_AT_stmt_list DW_FORM_sec_offset
DW_AT value: 0 DW_FORM value: 0
7 DW_TAG_base_type \[no children\]
DW_AT_byte_size DW_FORM_data1
DW_AT_encoding DW_FORM_data1
DW_AT_name DW_FORM_string
DW_AT value: 0 DW_FORM value: 0
8 DW_TAG_variable \[no children\]
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data2
DW_AT_type DW_FORM_ref4
DW_AT_external DW_FORM_flag_present
DW_AT_declaration DW_FORM_flag_present
DW_AT value: 0 DW_FORM value: 0
9 DW_TAG_subprogram \[has children\]
DW_AT_external DW_FORM_flag_present
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_prototyped DW_FORM_flag_present
DW_AT_type DW_FORM_ref4
DW_AT_low_pc DW_FORM_addr
DW_AT_high_pc DW_FORM_data8
DW_AT_frame_base DW_FORM_exprloc
DW_AT_call_all_calls DW_FORM_flag_present
DW_AT_sibling DW_FORM_ref4
DW_AT value: 0 DW_FORM value: 0
10 DW_TAG_call_site \[has children\]
DW_AT_call_return_pc DW_FORM_addr
DW_AT_call_origin DW_FORM_ref4
DW_AT value: 0 DW_FORM value: 0
11 DW_TAG_call_site_parameter \[no children\]
DW_AT_location DW_FORM_exprloc
DW_AT_call_value DW_FORM_exprloc
DW_AT value: 0 DW_FORM value: 0
12 DW_TAG_subprogram \[no children\]
DW_AT_external DW_FORM_flag_present
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_prototyped DW_FORM_flag_present
DW_AT_low_pc DW_FORM_addr
DW_AT_high_pc DW_FORM_data8
DW_AT_frame_base DW_FORM_exprloc
DW_AT_call_all_calls DW_FORM_flag_present
DW_AT value: 0 DW_FORM value: 0
13 DW_TAG_subprogram \[no children\]
DW_AT_external DW_FORM_flag_present
DW_AT_declaration DW_FORM_flag_present
DW_AT_linkage_name DW_FORM_strp
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data2
DW_AT value: 0 DW_FORM value: 0
#...
Contents of the .debug_loclists section:
#...
Offset Begin End Expression
0000000c 0000000000001234 \(base address\)
00000015 0000000000001234 0000000000001236 \(DW_OP_reg5 \([^()]*\)\)
0000001a 0000000000001236 0000000000001239 \(DW_OP_entry_value: \(DW_OP_reg5 \([^()]*\)\); DW_OP_stack_value\)
00000022 <End of list>
00000023 0000000000001234 \(base address\)
0000002c 0000000000001234 0000000000001236 \(DW_OP_reg4 \([^()]*\)\)
00000031 0000000000001236 0000000000001239 \(DW_OP_entry_value: \(DW_OP_reg4 \([^()]*\)\); DW_OP_stack_value\)
00000039 <End of list>
Contents of the .debug_rnglists section:
Offset Begin End
0000000c 0000000000001234 0000000000001236
00000016 0000000000001234 0000000000001239
00000020 <End of list>
Raw dump of debug contents of section .debug_line:
Offset: 0x0
Length: 144
DWARF Version: 5
Address size \(bytes\): 8
Segment selector \(bytes\): 0
Prologue Length: 60
Minimum Instruction Length: 1
Maximum Ops per Instruction: 1
Initial value of 'is_stmt': 1
Line Base: -10
Line Range: 242
Opcode Base: 13
Opcodes:
Opcode 1 has 0 args
Opcode 2 has 1 arg
Opcode 3 has 1 arg
Opcode 4 has 1 arg
Opcode 5 has 1 arg
Opcode 6 has 0 args
Opcode 7 has 0 args
Opcode 8 has 0 args
Opcode 9 has 1 arg
Opcode 10 has 0 args
Opcode 11 has 0 args
Opcode 12 has 1 arg
The Directory Table \(offset 0x22, lines 3, columns 1\):
Entry Name
0 \(indirect line string, offset: 0x0\):
1 \(indirect line string, offset: 0x1\):
2 \(indirect line string, offset: 0x22\): /usr/include
The File Name Table \(offset 0x34, lines 4, columns 2\):
Entry Dir Name
0 0 \(indirect line string, offset: 0x14\): main.c
1 1 \(indirect line string, offset: 0x1b\): main.c
2 2 \(indirect line string, offset: 0xb\): unistd.h
3 2 \(indirect line string, offset: 0x2\): getopt.h
Line Number Statements:
\[0x00000048\] Extended opcode 2: set Address to 0x1234
\[0x00000053\] Special opcode 15: advance Address by 0 to 0x1234 and Line by 5 to 6
\[0x00000054\] Extended opcode 2: set Address to 0x12346
\[0x0000005f\] Copy
\[0x00000060\] Extended opcode 2: set Address to 0x1234
\[0x0000006b\] Extended opcode 1: End of Sequence
\[0x0000006e\] Extended opcode 2: set Address to 0x1234
\[0x00000079\] Special opcode 14: advance Address by 0 to 0x1234 and Line by 4 to 5
\[0x0000007a\] Extended opcode 2: set Address to 0x1234
\[0x00000085\] Copy
\[0x00000086\] Extended opcode 2: set Address to 0x1234
\[0x00000091\] Extended opcode 1: End of Sequence
Contents of the .debug_line section:
CU: ./main.c:
File name Line number Starting address View Stmt
main.c 6 0x1234 x
main.c 6 0x12346 x
main.c 6 0x1234 x
main.c 5 0x1234 x
main.c 5 0x1234 x
main.c 5 0x1234 x
|