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: --32 --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:        0x46 \(32-bit\)
   Version:       3
   Abbrev Offset: 0x0
   Pointer Size:  4
 <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
    <1d>   DW_AT_high_pc     : 0x1b
    <21>   DW_AT_stmt_list   : 0x0
 <1><25>: Abbrev Number: 2 \(DW_TAG_subprogram\)
    <26>   DW_AT_external    : 1
    <27>   DW_AT_name        : \(indirect string, offset: 0xc\): foo2
    <2b>   DW_AT_decl_file   : 1
    <2c>   DW_AT_decl_line   : 10
    <2d>   DW_AT_low_pc      : 0x0
    <31>   DW_AT_high_pc     : 0x2
    <35>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
 <1><37>: Abbrev Number: 2 \(DW_TAG_subprogram\)
    <38>   DW_AT_external    : 1
    <39>   DW_AT_name        : \(indirect string, offset: 0x11\): foo1
    <3d>   DW_AT_decl_file   : 1
    <3e>   DW_AT_decl_line   : 4
    <3f>   DW_AT_low_pc      : 0x10
    <43>   DW_AT_high_pc     : 0x1b
    <47>   DW_AT_frame_base  : 1 byte block: 9c 	\(DW_OP_call_frame_cfa\)
 <1><49>: Abbrev Number: 0

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

  Offset:                      0x0
  Length:                      64
  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 49: advance Address by 3 to 0x13 and Line by 2 to 7
  \[0x.*\]  Special opcode 46: advance Address by 3 to 0x16 and Line by -1 to 6
  \[0x.*\]  Advance PC by 5 to 0x1b
  \[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: 74

    Offset	Name
    25    	foo2
    37    	foo1

Contents of the .[z]?debug_aranges section:

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

    Address    Length
    00000000 0000001b 
    00000000 00000000 

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:

00000000 00000010 ffffffff CIE
  Version:               1
  Augmentation:          ""
  Code alignment factor: 1
  Data alignment factor: -4
  Return address column: 8

  DW_CFA_def_cfa: r4 \(esp\) ofs 4
  DW_CFA_offset: r8 \(eip\) at cfa-4
  DW_CFA_nop
  DW_CFA_nop

00000014 0000000c 00000000 FDE cie=00000000 pc=00000000..00000002

00000024 00000014 00000000 FDE cie=00000000 pc=00000010..0000001b
  DW_CFA_advance_loc: 3 to 00000013
  DW_CFA_def_cfa_offset: 16
  DW_CFA_advance_loc: 3 to 00000016
  DW_CFA_def_cfa_offset: 4
  DW_CFA_nop
  DW_CFA_nop