binutils Newspaper
OCTOBER 6, 2026
gas — Proposed

gas: sframe: Fix for flexible FDE and new test

Series updates gas SFrame generation for flexible FDEs and adds a test for unsupported CFI in signal frames.

This series consists of two patches: the first fixes the generation of SFrame data when dealing with flexible FDEs (Frame Description Entries) that support SFrame version 3. The second patch introduces a new test case to validate gas’s behavior with unsupported CFI (Call Frame Information) directives in signal frames. Together, these patches aim to improve the robustness and correctness of stack frame information generation in the GNU Assembler.

In Details

This patch series addresses two aspects of SFrame generation within the GNU Assembler (gas). The first patch rectifies issues with generating flexible FDEs, specifically for SFrame v3, ensuring correct handling of non-standard PC/SP/FP register usage for CFA (Call Frame Address) definitions. The second patch introduces a test case to validate behavior when encountering unsupported CFI directives within signal frames, ensuring graceful handling by generating an empty FDE. These changes contribute to more reliable debugging information.

For Context
gas
The GNU Assembler, part of the GNU Binutils suite.
sframe
Stack Frame, a data structure that aids in stack unwinding for debugging purposes.
FDE
Frame Description Entry, a part of DWARF debugging information that describes how to construct or deconstruct a function's stack frame.
flexible FDE
A type of FDE that allows for more dynamic or non-standard ways of defining the Call Frame Address (CFA), potentially using different base registers or offsets.
CFI
Call Frame Information, directives used in debugging symbols to describe stack frame layout and unwinding.
signal frame
A special stack frame created when a signal is delivered to a process.
CFA
Call Frame Address, typically the stack pointer value at the point a function is called, used as a reference for unwinding.
Filed Under: binutilsgassframecfidebugging