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: