| Contents of the .debug_info section: |
| |
| Compilation Unit @ offset 0x0: |
| Length: 0x160 \(32-bit\) |
| Version: 5 |
| Unit Type: DW_UT_compile \(1\) |
| 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 - 0x1234 |
| |
| main.c 5 0x1234 x |
| main.c 5 0x1234 x |
| main.c - 0x1234 |
| |
| |