https://sourceware.org/bugzilla/show_bug.cgi?id=29390
Bug ID: 29390
Summary: On aarch64 binaries readelf --debug-dump=frames
reports DW_CFA_AARCH64_negate_ra_state as
DW_CFA_GNU_window_save
Product: binutils
Version: 2.37
Status: NEW
Severity: normal
Priority: P2
Component: binutils
Assignee: unassigned at sourceware dot org
Reporter: wcohen at redhat dot com
Target Milestone: ---
When reviewing the output of readelf --debug-dump=frames I noticed that the
output for aarch64 contained DW_CFA_GNU_window_save rather than the expected
DW_CFA_AARCH64_negate_ra_state. Both of the call frame instructions are coded
as 0x2d. However, the DW_CFA_GNU_window_save is for sparc binaries and the
DW_CFA_AARCH64_negate_ra_state is for aarch64 binaries.
It is pretty easy to demonstrate the issue on a fedora 36 aarch64 system with
the steps below. They shows many DW_CFA_GNU_window_save entries rather than
DW_CFA_AARCH64_negate_ra.
sudo dnf install systemtap
readelf --debug-dump=frames /usr/bin/stap |grep -v "^0" | awk -F: '{print
$1}'|grep DW_CFA |sort | uniq -c
26096 DW_CFA_advance_loc
783 DW_CFA_advance_loc1
193 DW_CFA_advance_loc2
5 DW_CFA_def_cfa
5908 DW_CFA_def_cfa_offset
2 DW_CFA_def_cfa_register
5901 DW_CFA_GNU_window_save
5014 DW_CFA_nop
27676 DW_CFA_offset
35 DW_CFA_offset_extended
3110 DW_CFA_remember_state
26685 DW_CFA_restore
32 DW_CFA_restore_extended
3110 DW_CFA_restore_state
1 DW_CFA_undefined
--
You are receiving this mail because:
You are on the CC list for the bug.