[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug binutils/16252] New: readelf -wF mishandles DW_CFA_restore_state
From: |
address@hidden |
Subject: |
[Bug binutils/16252] New: readelf -wF mishandles DW_CFA_restore_state |
Date: |
Tue, 26 Nov 2013 11:19:11 +0000 |
http://sourceware.org/bugzilla/show_bug.cgi?id=16252
Bug ID: 16252
Summary: readelf -wF mishandles DW_CFA_restore_state
Product: binutils
Version: 2.23
Status: NEW
Severity: normal
Priority: P2
Component: binutils
Assignee: unassigned at sourceware dot org
Reporter: address@hidden
readelf -wF loses the state of the saved registers after DW_CFA_restore_state.
$ readelf -wf nptl/pthread_cond_timedwait.os
Contents of the .eh_frame section:
00000000 0000001c 00000000 CIE
Version: 1
Augmentation: "zPLR"
Code alignment factor: 1
Data alignment factor: -4
Return address column: 8
Augmentation data: 9b ed ff ff ff 1b 1b
DW_CFA_def_cfa: r4 (esp) ofs 4
DW_CFA_offset: r8 (eip) at cfa-4
DW_CFA_nop
DW_CFA_nop
00000020 00000058 00000024 FDE cie=00000000 pc=00000000..00000570
Augmentation data: cf ff ff ff
DW_CFA_advance_loc: 1 to 00000001
DW_CFA_def_cfa_offset: 8
DW_CFA_offset: r5 (ebp) at cfa-8
DW_CFA_advance_loc: 1 to 00000002
DW_CFA_def_cfa_offset: 12
DW_CFA_offset: r7 (edi) at cfa-12
DW_CFA_advance_loc: 1 to 00000003
DW_CFA_def_cfa_offset: 16
DW_CFA_offset: r6 (esi) at cfa-16
DW_CFA_advance_loc: 1 to 00000004
DW_CFA_def_cfa_offset: 20
DW_CFA_offset: r3 (ebx) at cfa-20
DW_CFA_advance_loc1: 114 to 00000076
DW_CFA_def_cfa_offset: 52
DW_CFA_remember_state
DW_CFA_advance_loc2: 440 to 0000022e
DW_CFA_def_cfa_offset: 20
DW_CFA_advance_loc: 7 to 00000235
DW_CFA_def_cfa_offset: 16
DW_CFA_restore: r3 (ebx)
DW_CFA_advance_loc: 1 to 00000236
DW_CFA_def_cfa_offset: 12
DW_CFA_restore: r6 (esi)
DW_CFA_advance_loc: 1 to 00000237
DW_CFA_def_cfa_offset: 8
DW_CFA_restore: r7 (edi)
DW_CFA_advance_loc: 1 to 00000238
DW_CFA_def_cfa_offset: 4
DW_CFA_restore: r5 (ebp)
DW_CFA_advance_loc: 1 to 00000239
DW_CFA_restore_state
DW_CFA_advance_loc: 9 to 00000242
DW_CFA_def_cfa_offset: 20
DW_CFA_advance_loc: 63 to 00000281
DW_CFA_def_cfa_offset: 52
DW_CFA_advance_loc1: 84 to 000002d5
DW_CFA_def_cfa_offset: 20
DW_CFA_advance_loc1: 64 to 00000315
DW_CFA_def_cfa_offset: 52
DW_CFA_advance_loc1: 244 to 00000409
DW_CFA_def_cfa_offset: 20
DW_CFA_advance_loc: 28 to 00000425
DW_CFA_def_cfa_offset: 52
DW_CFA_nop
DW_CFA_nop
$ readelf -wF nptl/pthread_cond_timedwait.os
Contents of the .eh_frame section:
00000000 0000001c 00000000 CIE "zPLR" cf=1 df=-4 ra=8
LOC CFA ra
00000000 esp+4 c-4
00000020 00000058 00000024 FDE cie=00000000 pc=00000000..00000570
LOC CFA ebx ebp esi edi ra
00000000 esp+4 u u u u c-4
00000001 esp+8 u c-8 u u c-4
00000002 esp+12 u c-8 u c-12 c-4
00000003 esp+16 u c-8 c-16 c-12 c-4
00000004 esp+20 c-20 c-8 c-16 c-12 c-4
00000076 esp+52 c-20 c-8 c-16 c-12 c-4
0000022e esp+20 c-20 c-8 c-16 c-12 c-4
00000235 esp+16 u c-8 c-16 c-12 c-4
00000236 esp+12 u c-8 u c-12 c-4
00000237 esp+8 u c-8 u u c-4
00000238 esp+4 u u u u c-4
00000239 esp+4 c-20 u u u c-4
00000242 esp+20 c-20 u u u c-4
00000281 esp+52 c-20 u u u c-4
000002d5 esp+20 c-20 u u u c-4
00000315 esp+52 c-20 u u u c-4
00000409 esp+20 c-20 u u u c-4
00000425 esp+52 c-20 u u u c-4
There is a DW_CFA_restore_state at 00000239 that restores the state at
00000076, but readelf -wF displays u for the saved registers.
--
You are receiving this mail because:
You are on the CC list for the bug.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Bug binutils/16252] New: readelf -wF mishandles DW_CFA_restore_state,
address@hidden <=