mirror of
https://github.com/bminor/binutils-gdb.git
synced 2026-02-05 04:51:30 +00: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.