This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

question on dwarf2 debug-frame.


Hello,

I have this scenario:
using "dwarfdump --debug-frame" in a very simple object generated with current trunk.
I am trying to figure out (with the dwarf3 spec) wether the problem is in the tool (dwarfdump), or what we're emitting.
Can anyone more knowledgeable comment?


Iain.

----------------------------------------------------------------------
 File: simplistic.o { mach32-i386 }
----------------------------------------------------------------------

.debug_frame contents:

0x00000000: CIE
        length: 0x00000010
        CIE_id: 0xffffffff
       version: 0x01
  augmentation: ""
    code_align: 1
    data_align: -4
   ra_register: 0x08
  Initial Inst: DW_CFA_def_cfa (4, 4)
                DW_CFA_offset (8, 0)
                DW_CFA_nop
                DW_CFA_nop
                Init State: CFA( R4+4  )   R8=+0


0x00000014: FDE
length: 0x00000028
CIE_pointer: 0x00000000
start_addr: 0x00000000
range_size: 0x00000012
Instructions: 0x00000000: CFA( R4+4 ) R8=+0
DW_CFA_advance_loc4 (1)
DW_CFA_def_cfa_offset (8)
DW_CFA_offset (5, -8)
0x00000001: CFA( R4+8 ) R5=-8 R8=+0
DW_CFA_advance_loc4 (2)
DW_CFA_def_cfa_register (5)
0x00000003: CFA( R5+8 ) R5=-8 R8=+0
DW_CFA_advance_loc4 (14)
DW_CFA_restore (5)
Assertion failed: (reg_state_pos != cie->initial_state.regs.end()), function ParseInstructions, file /SourceCache/dwarf_utilities/ dwarf_utilities-49/source/DWARFDebugFrame.cpp, line 353.
Abort trap


====
the -save-temps -dA output for this is:

	.section __DWARF,__debug_frame,regular,debug
Lframe0:
	.set L$set$0,LECIE0-LSCIE0
	.long L$set$0	# Length of Common Information Entry
LSCIE0:
	.long	0xffffffff	# CIE Identifier Tag
	.byte	0x1	# CIE Version
	.ascii "\0"	# CIE Augmentation
	.byte	0x1	# uleb128 0x1; CIE Code Alignment Factor
	.byte	0x7c	# sleb128 -4; CIE Data Alignment Factor
	.byte	0x8	# CIE RA Column
	.byte	0xc	# DW_CFA_def_cfa
	.byte	0x4	# uleb128 0x4
	.byte	0x4	# uleb128 0x4
	.byte	0x88	# DW_CFA_offset, column 0x8
	.byte	0x1	# uleb128 0x1
	.align 2
LECIE0:
LSFDE0:
	.set L$set$1,LEFDE0-LASFDE0
	.long L$set$1	# FDE Length
LASFDE0:
	.set L$set$2,Lframe0-Lsection__debug_frame
	.long L$set$2	# FDE CIE offset
	.long	LFB0	# FDE initial location
	.set L$set$3,LFE0-LFB0
	.long L$set$3	# FDE address range
	.byte	0x4	# DW_CFA_advance_loc4
	.set L$set$4,LCFI0-LFB0
	.long L$set$4
	.byte	0xe	# DW_CFA_def_cfa_offset
	.byte	0x8	# uleb128 0x8
	.byte	0x85	# DW_CFA_offset, column 0x5
	.byte	0x2	# uleb128 0x2
	.byte	0x4	# DW_CFA_advance_loc4
	.set L$set$5,LCFI1-LCFI0
	.long L$set$5
	.byte	0xd	# DW_CFA_def_cfa_register
	.byte	0x5	# uleb128 0x5
	.byte	0x4	# DW_CFA_advance_loc4
	.set L$set$6,LCFI3-LCFI1
	.long L$set$6
	.byte	0xc5	# DW_CFA_restore, column 0x5
	.byte	0xc	# DW_CFA_def_cfa
	.byte	0x4	# uleb128 0x4
	.byte	0x4	# uleb128 0x4
	.align 2
LEFDE0:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]