[PATCH,V2] objdump: sframe: fix multiple emission of SFrame and DWARF Frame
Jan Beulich
jbeulich@suse.com
Fri Feb 6 07:49:03 GMT 2026
On 06.02.2026 08:40, Indu Bhagat wrote:
> Currently, when a user specifies both -WF (to dump DWARF Frame) and
> --sframe, the dump_dwarf () call is triggered twice,
>
> First, in dump_bfd ():
> if (dump_dwarf_section_info)
> dump_dwarf (abfd, is_mainfile);
>
> And then again in dump_bfd () via:
> if (dump_sframe_section_info)
> dump_sframe_section (abfd, dump_sframe_section_name, is_mainfile);
> Where dump_sframe_section () itself invokes dump_dwarf () to emit SFrame
> section.
>
> The original intent of making dump_sframe_section () to invoke
> dump_dwarf () was to reuse the existing (DWARF) machinery for relocation
> and emission of SFrame section (along with DWARF sections). But this
> may cause duplicate emission as noted above (PR 33806).
>
> So, carve out the necessary work into dump_sframe_section () to make it
> not invoke dump_dwarf (): explicitly load the SFrame section and then
> invoke the associated display function directly. This ensures that the
> SFrame textual dump is emitted exactly once as intended.
>
> Additionally, this patch removes:
> - the temporary "sframe-internal-only" debug option because it not
> needed anymore, now that we dont use dump_dwarf () for SFrame dumping
> anymore.
> - stubs from dump_dwarf_section () specific to SFrame, as it is not
> called for it anymore.
>
> While at it, xstrdup consistently and free the dump_sframe_section_name
> var.
>
> Update the existing sframe-func.s to ensure .eh_frame section is emitted
> as well. Add new test objdump-sframe-2.d to verify that textual dump
> using objdump contains single textual dumps of .eh_frame and .sframe (if
> both --sframe and -WF are specified).
>
> PR libsframe/33806
>
> binutils/
> PR libsframe/33806
> * dwarf.c (debug_option_table): Remove sframe-internal-only.
> * objdump.c (dump_sframe_section): Call display function
> directly instead of dump_dwarf.
> (dump_bfd): Update call to dump_sframe_section.
> (main): Remove 'sframe-internal-only' hack.
> binutils/testsuite/
> * binutils-all/x86-64/sframe-func.s: Emit .eh_frame section as
> well.
> * binutils-all/x86-64/objdump-sframe-2.d: New test.
Okay, provided Jens indicates his concerns were also addressed.
Jan
More information about the Binutils
mailing list