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.
- 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.