Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#PROG: objcopy
#source: compressed-1.s
#as: --64 --compress-debug-sections --gdwarf-3
#objcopy:
#readelf: -w
#name: objcopy on compressed debug sections

Contents of the .[z]?debug_abbrev section:

  Number TAG \(0x0\)
   1      DW_TAG_compile_unit    \[has children\]
    DW_AT_producer     DW_FORM_strp
    DW_AT_language     DW_FORM_data1
    DW_AT_name         DW_FORM_strp
    DW_AT_comp_dir     DW_FORM_strp
    DW_AT_low_pc       DW_FORM_addr
    DW_AT_high_pc      DW_FORM_addr
    DW_AT_stmt_list    DW_FORM_data4
    DW_AT value: 0     DW_FORM value: 0
   2      DW_TAG_subprogram    \[no children\]
    DW_AT_external     DW_FORM_flag
    DW_AT_name         DW_FORM_strp
    DW_AT_decl_file    DW_FORM_data1
    DW_AT_decl_line    DW_FORM_data1
    DW_AT_low_pc       DW_FORM_addr
    DW_AT_high_pc      DW_FORM_addr
    DW_AT_frame_base   DW_FORM_block1
    DW_AT value: 0     DW_FORM value: 0

Contents of the .[z]?debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x5e \(32-bit\)
   Version:       3
   Abbrev Offset: 0x0
   Pointer Size:  8
 <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\)
    <c>   DW_AT_producer    : \(indirect string, offset: 0x0\): GNU C 4.4.4
    <10>   DW_AT_language    : 1	\(ANSI C\)
    <11>   DW_AT_name        : \(indirect string, offset: 0x18\): compressed-1.c
    <15>   DW_AT_comp_dir    : \(indirect string, offset: 0x16\): .
    <19>   DW_AT_low_pc      : 0x0
    <21>   DW_AT_high_pc     : 0x15
    <29>   DW_AT_stmt_list   : 0x0
 <1><2d>: Abbrev Number: 2 \(DW_TAG_subprogram\)
    <2e>   DW_AT_external    : 1
    <2f>   DW_AT_name        : \(indirect string, offset: 0xc\): foo2
    <33>   DW_AT_decl_file   : 1
    <34>   DW_AT_decl_line   : 10
    <35>   DW_AT_low_pc      : 0x0
    <3d>   DW_AT_high_pc     : 0x2
    <45>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
 <1><47>: Abbrev Number: 2 \(DW_TAG_subprogram\)
    <48>   DW_AT_external    : 1
    <49>   DW_AT_name        : \(indirect string, offset: 0x11\): foo1
    <4d>   DW_AT_decl_file   : 1
    <4e>   DW_AT_decl_line   : 4
    <4f>   DW_AT_low_pc      : 0x10
    <57>   DW_AT_high_pc     : 0x15
    <5f>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
 <1><61>: Abbrev Number: 0

Raw dump of debug contents of section .[z]?debug_line:

  Offset:                      0x0
  Length:                      67
  DWARF Version:               .
  Prologue Length:             37
  Minimum Instruction Length:  1
  Initial value of 'is_stmt':  1
  Line Base:                   -5
  Line Range:                  14
  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 is empty.

 The File Name Table \(offset 0x.*\):
  Entry	Dir	Time	Size	Name
  1	0	0	0	compressed-1.c

 Line Number Statements:
  \[0x.*\]  Extended opcode 2: set Address to 0x0
  \[0x.*\]  Advance Line by 10 to 11
  \[0x.*\]  Copy
  \[0x.*\]  Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12 \(view 1\)
  \[0x.*\]  Advance Line by -7 to 5
  \[0x.*\]  Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5
  \[0x.*\]  Special opcode 6: advance Address by 0 to 0x10 and Line by 1 to 6 \(view 1\)
  \[0x.*\]  Advance PC by 5 to 0x15
  \[0x.*\]  Extended opcode 1: End of Sequence


Contents of the .[z]?debug_pubnames section:

  Length:                              32
  Version:                             2
  Offset into .[z]?debug_info section:     0x0
  Size of area in .[z]?debug_info section: 98

    Offset	Name
    2d    	foo2
    47    	foo1

Contents of the .[z]?debug_aranges section:

  Length:                   44
  Version:                  2
  Offset into .[z]?debug_info:  0x0
  Pointer Size:             8
  Segment Size:             0

    Address            Length
    0000000000000000 0000000000000015 
    0000000000000000 0000000000000000 

Contents of the .[z]?debug_str section:

  0x00000000 474e5520 4320342e 342e3400 666f6f32 GNU C 4.4.4.foo2
  0x00000010 00666f6f 31002e00 636f6d70 72657373 .foo1...compress
  0x00000020 65642d31 2e6300                     ed-1.c.

Contents of the .[z]?debug_frame section:

0+ 0+14 0*ffffffff CIE
  Version:               1
  Augmentation:          ""
  Code alignment factor: 1
  Data alignment factor: -8
  Return address column: 16

  DW_CFA_def_cfa: r7 \(rsp\) ofs 8
  DW_CFA_offset: r16 \(rip\) at cfa-8
  DW_CFA_nop
  DW_CFA_nop
  DW_CFA_nop
  DW_CFA_nop
  DW_CFA_nop
  DW_CFA_nop

0+18 0+14 0+ FDE cie=0+ pc=0+..0+2

0+30 0+14 0+ FDE cie=0+ pc=0+10..0+15