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: sch...@linux-m68k.org 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. _______________________________________________ bug-binutils mailing list bug-binutils@gnu.org https://lists.gnu.org/mailman/listinfo/bug-binutils