mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2026-08-27 00:26:02 -04:00
Update the SFrame specification to document Version 3. This version
introduces fundamental changes to support additional scenarios (e.g.,
s390x register-based recovery, x86_64 DRAP) using a 'Flexible FDE'
definition while maintaining compactness for standard frames.
Key changes documented include:
- The SFrame Function Descriptor Entry (FDE) is split into two
distinct structures:
[sframe_func_desc_idx] Fixed-size index for binary search.
[sframe_func_desc_attr] Variable-location attributes including new
info bytes.
- Flexible FDEs (SFRAME_FDE_TYPE_FLEX)
A new FDE type that interprets FRE bytes not as simple stack
offsets, but as pairs of "Control Data" and "Offset". This
allows encoding complex recovery rules (e.g., "CFA = *(RBP - 8)")
without bloating the format for standard cases.
- Provision for defining new FDE types in future. A total of 5 bits
are reserved for this purpose.
- Make explicit distinction between FDE Types vs. PC Type
[FDE Type] Defines how to interpret stack trace data (Default vs. Flex).
[PC Type] Defines how PCs are advanced for an FDE (Increment vs. Mask).
- Other renames like sfde_func_start_address is renamed to
sfdi_func_start_offset to accurately reflect that it is a relative
offset, not an absolute address.
- Remove SFRAME_F_FRAME_POINTER from SFrame V3. The corresponding bit
is now unused in SFrame V3.
libsframe/doc/
* sframe-spec.texi: Update text for SFrame Version 3.
(Changes from Version 2 to Version 3): New section.
(The SFrame FDE Index): New section documenting sframe_func_desc_idx.
(The SFrame FDE Attribute): New section documenting
sframe_func_desc_attr.
(The SFrame FDE Info Bytes): Expanded to document sfda_func_info and
sfda_func_info2 split.
(The SFrame FDE PC Types): Document SFRAME_V3_FDE_PCTYPE_INC and
SFRAME_V3_FDE_PCTYPE_MASK.
(The SFrame FDE Types): Document SFRAME_FDE_TYPE_DEFAULT and
SFRAME_FDE_TYPE_FLEX.
(Interpretation of SFrame FREs): Split into Default and Flexible
interpretation.
(Flexible FDE Type Interpretation): Document the Control
Data/Offset pair encoding.
|
||
|---|---|---|
| .. | ||
| doc | ||
| testsuite | ||
| aclocal.m4 | ||
| config.h.in | ||
| configure | ||
| configure.ac | ||
| libsframe.ver | ||
| libtool-version | ||
| Makefile.am | ||
| Makefile.in | ||
| README | ||
| sframe-dump.c | ||
| sframe-error.c | ||
| sframe-impl.h | ||
| sframe.c | ||
libsframe is a support library for the GNU Binutils collection (currently used by GNU ld, objdump, etc.) to read and write SFrame section data. Note: This library is currently intended for internal use by GNU Binutils only. Strict guarantees for ABI compatibility are not provided, and external projects should not rely on the stability of these interfaces.