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

Contents of the .[z]?debug_abbrev section:

  Number TAG
   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
   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

Contents of the .[z]?debug_info section:

  Compilation Unit @ offset 0x0:
   Length:        0x46 \(32-bit\)
   Version:       3
   Abbrev Offset: 0
   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\)

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

  Offset:                      0x0
  Length:                      64
  DWARF Version:               2
  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 args
  Opcode 3 has 1 args
  Opcode 4 has 1 args
  Opcode 5 has 1 args
  Opcode 6 has 0 args
  Opcode 7 has 0 args
  Opcode 8 has 0 args
  Opcode 9 has 1 args
  Opcode 10 has 0 args
  Opcode 11 has 0 args
  Opcode 12 has 1 args

 The Directory Table is empty.

 The File Name Table:
  Entry	Dir	Time	Size	Name
  1	0	0	0	compressed-1.c

 Line Number Statements:
  Extended opcode 2: set Address to 0x0
  Advance Line by 10 to 11
  Copy
  Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12
  Advance Line by -7 to 5
  Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5
  Special opcode 49: advance Address by 3 to 0x13 and Line by 2 to 7
  Special opcode 46: advance Address by 3 to 0x16 and Line by -1 to 6
  Advance PC by 5 to 0x1b
  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

