1This is sframe-spec.info, produced by makeinfo version 7.0.2 from
2sframe-spec.texi.
3
4Copyright �� 2021-2024 Free Software Foundation, Inc.
5
6   Permission is granted to copy, distribute and/or modify this document
7under the terms of the GNU General Public License, Version 3 or any
8later version published by the Free Software Foundation.  A copy of the
9license is included in the section entitled ���GNU General Public
10License���.
11
12INFO-DIR-SECTION Software development
13START-INFO-DIR-ENTRY
14* SFrame: (sframe-spec).         The Simple Frame format.
15END-INFO-DIR-ENTRY
16
17
18File: sframe-spec.info,  Node: Top,  Next: Introduction,  Up: (dir)
19
20The SFrame format
21*****************
22
23This manual describes version 2 of the SFrame file format.  SFrame
24stands for Simple Frame format.  SFrame format keeps track of the
25minimal necessary information needed for generating stack traces:
26
27   ��� Canonical Frame Address (CFA).
28   ��� Frame Pointer (FP).
29   ��� Return Address (RA).
30
31   The reason for existence of the SFrame format is to provide a simple,
32fast and low-overhead mechanism to generate stack traces.
33
34* Menu:
35
36* Introduction::
37* SFrame section::
38* Index::
39
40
41File: sframe-spec.info,  Node: Introduction,  Next: SFrame section,  Prev: Top,  Up: Top
42
431 Introduction
44**************
45
46* Menu:
47
48* Overview::
49* Changes from Version 1 to Version 2::
50
51
52File: sframe-spec.info,  Node: Overview,  Next: Changes from Version 1 to Version 2,  Up: Introduction
53
541.1 Overview
55============
56
57The SFrame stack trace information is provided in a loaded section,
58known as the ���.sframe��� section.  When available, the ���.sframe��� section
59appears in a new segment of its own, PT_GNU_SFRAME.
60
61   The SFrame format is currently supported only for select ABIs,
62namely, AMD64 and AAPCS64.
63
64   A portion of the SFrame format follows an unaligned on-disk
65representation.  Some data structures, however, (namely the SFrame
66header and the SFrame function descriptor entry) have elements at their
67natural boundaries.  All data structures are packed, unless otherwise
68stated.
69
70   The contents of the SFrame section are stored in the target
71endianness, i.e., in the endianness of the system on which the section
72is targetted to be used.  An SFrame section reader may use the magic
73number in the SFrame header to identify the endianness of the SFrame
74section.
75
76   Addresses in this specification are expressed in bytes.
77
78   The rest of this specification describes the current version of the
79format, ���SFRAME_VERSION_2���, in detail.  Additional sections outline the
80major changes made to each previously published version of the SFrame
81stack trace format.
82
83   The associated API to decode, probe and encode the SFrame section,
84provided via ���libsframe���, is not accompanied here at this time.  This
85will be added later.
86
87   This document is intended to be in sync with the C code in
88���sframe.h���.  Please report discrepancies between the two, if any.
89
90
91File: sframe-spec.info,  Node: Changes from Version 1 to Version 2,  Prev: Overview,  Up: Introduction
92
931.2 Changes from Version 1 to Version 2
94=======================================
95
96The following is a list of the changes made to the SFrame stack trace
97format since Version 1 was published.
98
99   ��� SFrame Function Descriptor Entry encodes the size of the repetitive
100     code blocks, e.g., pltN entries for which an FDE of type
101     SFRAME_FDE_TYPE_PCMASK is used.
102   ��� SFrame Function Descriptor Entry includes an explicit padding of
103     two bytes to ensure natural alignment for its data members.
104   ��� The above two imply that each SFrame Function Descriptor Entry has
105     a fixed size of 20 bytes instead of its size of 17 bytes in SFrame
106     format version 1.
107
108
109File: sframe-spec.info,  Node: SFrame section,  Next: Index,  Prev: Introduction,  Up: Top
110
1112 SFrame section
112****************
113
114The SFrame section consists of an SFrame header, starting with a
115preamble, and two other sub-sections, namely the SFrame Function
116Descriptor Entry (SFrame FDE) sub-section, and the SFrame Frame Row
117Entry (SFrame FRE) sub-section.
118
119* Menu:
120
121* SFrame Preamble::
122* SFrame Header::
123* SFrame Function Descriptor Entries::
124* SFrame Frame Row Entries::
125
126
127File: sframe-spec.info,  Node: SFrame Preamble,  Next: SFrame Header,  Up: SFrame section
128
1292.1 SFrame Preamble
130===================
131
132The preamble is a 32-bit packed structure; the only part of the SFrame
133whose format cannot vary between versions.
134
135     typedef struct sframe_preamble
136     {
137       uint16_t sfp_magic;
138       uint8_t sfp_version;
139       uint8_t sfp_flags;
140     } ATTRIBUTE_PACKED sframe_preamble;
141
142   Every element of the SFrame preamble is naturally aligned.
143
144   All values are stored in the endianness of the target system for
145which the SFrame section is intended.  Further details:
146
147Offset   Name                    Description
148-----------------------------------------------------------------------------------------
1490x00     ���uint16_t sfp_magic���    The magic number for SFrame section: 0xdee2.  Defined
150                                 as a macro ���SFRAME_MAGIC���.
151                                 
1520x02     ���uint8_t sfp_version���   The version number of this SFrame section.
153                                 *Note SFrame version::, for the set of valid values.
154                                 Current version is ���SFRAME_VERSION_1���.
155                                 
1560x03     ���uint8_t sfp_flags���     Flags (section-wide) for this SFrame section.
157                                 *Note SFrame flags::, for the set of valid values.
158
159* Menu:
160
161* SFrame endianness::
162* SFrame version::
163* SFrame flags::
164
165
166File: sframe-spec.info,  Node: SFrame endianness,  Next: SFrame version,  Up: SFrame Preamble
167
1682.1.1 SFrame endianness
169-----------------------
170
171SFrame sections are stored in the target endianness of the system that
172consumes them.  The SFrame library (���libsframe���) can, however, detect
173whether to endian-flip an SFrame section at decode time, by inspecting
174the ���sfp_magic��� field in the SFrame header (If it appears as 0xe2de,
175endian-flipping is needed).
176
177
178File: sframe-spec.info,  Node: SFrame version,  Next: SFrame flags,  Prev: SFrame endianness,  Up: SFrame Preamble
179
1802.1.2 SFrame version
181--------------------
182
183The version of the SFrame format can be determined by inspecting
184���sfp_version���.  The following versions are currently valid:
185
186Version            Number   Description
187------------------------------------------------------------------
188���SFRAME_VERSION_1��� 1        First version, obsolete.
189���SFRAME_VERSION_2��� 2        Current version, under development.
190
191   This document describes ���SFRAME_VERSION_2���.
192
193
194File: sframe-spec.info,  Node: SFrame flags,  Prev: SFrame version,  Up: SFrame Preamble
195
1962.1.3 SFrame flags
197------------------
198
199The preamble contains bitflags in its ���sfp_flags��� field that describe
200various section-wide properties.
201
202   The following flags are currently defined.
203
204Flag                       Versions   Value   Meaning
205----------------------------------------------------------------------------
206���SFRAME_F_FDE_SORTED���      All        0x1     Function Descriptor Entries
207                                              are sorted on PC.
208���SFRAME_F_FRAME_POINTER���   All        0x2     Functions preserve
209                                              frame-pointer.
210
211   Further flags may be added in future.
212
213
214File: sframe-spec.info,  Node: SFrame Header,  Next: SFrame Function Descriptor Entries,  Prev: SFrame Preamble,  Up: SFrame section
215
2162.2 SFrame Header
217=================
218
219The SFrame header is the first part of an SFrame section.  It begins
220with the SFrame preamble.  All parts of it other than the preamble
221(*note SFrame Preamble::) can vary between SFrame file versions.  It
222contains things that apply to the section as a whole, and offsets to the
223various other sub-sections defined in the format.  As with the rest of
224the SFrame section, all values are stored in the endianness of the
225target system.
226
227   The two sub-sections tile the SFrame section: each section runs from
228the offset given until the start of the next section.  An explicit
229length is given for the last sub-section, the SFrame Frame Row Entry
230(SFrame FRE) sub-section.
231
232     typedef struct sframe_header
233     {
234       sframe_preamble sfh_preamble;
235       uint8_t sfh_abi_arch;
236       int8_t sfh_cfa_fixed_fp_offset;
237       int8_t sfh_cfa_fixed_ra_offset;
238       uint8_t sfh_auxhdr_len;
239       uint32_t sfh_num_fdes;
240       uint32_t sfh_num_fres;
241       uint32_t sfh_fre_len;
242       uint32_t sfh_fdeoff;
243       uint32_t sfh_freoff;
244     } ATTRIBUTE_PACKED sframe_header;
245
246   Every element of the SFrame header is naturally aligned.
247
248   The sub-section offsets, namely ���sfh_fdeoff��� and ���sfh_freoff���, in the
249SFrame header are relative to the _end_ of the SFrame header; they are
250each an offset in bytes into the SFrame section where the SFrame FDE
251sub-section and the SFrame FRE sub-section respectively start.
252
253   SFrame header allows specifying explicitly the fixed offsets from
254CFA, if any, from which FP or RA may be recovered.  For example, in
255AMD64, the stack offset of the return address is ���CFA - 8���.  Since this
256offset is in close vicinity with the CFA in most ABIs,
257���sfh_cfa_fixed_fp_offset��� and ���sfh_cfa_fixed_ra_offset��� are limited to
258signed 8-bit integers.
259
260   SFrame format has made some provisions for supporting more
261ABIs/architectures in the future.  The ���sframe_header��� structure
262provides an unsigned 8-bit integral field to denote the size of an
263auxiliary SFrame header.  The auxiliary SFrame header follows right
264after the ���sframe_header��� structure.  As for the offset calculations,
265the _end_ of SFrame header must be the end of the auxiliary SFrame
266header, if the latter is present.
267
268   Putting it all together:
269
270Offset   Name                               Description
271----------------------------------------------------------------------------------------
2720x00     ���sframe_preamble sfh_preamble���     The SFrame preamble.
273                                            *Note SFrame Preamble::.
274                                            
2750x04     ���uint8_t sfh_abi_arch���             The ABI/arch identifier.
276                                            *Note SFrame ABI/arch identifier::.
277                                            
2780x05     ���int8_t sfh_cfa_fixed_fp_offset���   The CFA fixed FP offset, if any.
279                                            
2800x06     ���int8_t sfh_cfa_fixed_ra_offset���   The CFA fixed RA offset, if any.
281                                            
2820x07     ���uint8_t sfh_auxhdr_len���           Size in bytes of the auxiliary header
283                                            that follows the ���sframe_header���
284                                            structure.
285                                            
2860x08     ���uint32_t sfh_num_fdes���            The number of SFrame FDEs in the section.
287                                            
2880xc      ���uint32_t sfh_num_fres���            The number of SFrame FREs in the section.
289                                            
2900x10     ���uint32_t sfh_fre_len���             The length in bytes of the SFrame FRE
291                                            sub-section.
292                                            
2930x14     ���uint32_t sfh_fdeoff���              The offset in bytes of the SFrame FDE
294                                            sub-section.  This sub-section contains
295                                            ���sfh_num_fdes��� number of fixed-length
296                                            array elements.  The array element is of
297                                            type SFrame function desciptor entry,
298                                            each providing a high-level function
299                                            description for backtracing.
300                                            *Note SFrame Function Descriptor Entries::.
301                                            
3020x18     ���uint32_t sfh_freoff���              The offset in bytes of the SFrame FRE
303                                            sub-section, the core of the SFrame
304                                            section, which describes the stack trace
305                                            information using variable-length array
306                                            elements.
307                                            *Note SFrame Frame Row Entries::.
308                                            
309
310* Menu:
311
312* SFrame ABI/arch identifier::
313
314
315File: sframe-spec.info,  Node: SFrame ABI/arch identifier,  Up: SFrame Header
316
3172.2.1 SFrame ABI/arch identifier
318--------------------------------
319
320SFrame header identifies the ABI/arch of the target system for which the
321executable and hence, the stack trace information contained in the
322SFrame section, is intended.  There are currently three identifiable
323ABI/arch values in the format.
324
325ABI/arch Identifier                Value   Description
326                                           
327---------------------------------------------------------------------
328���SFRAME_ABI_AARCH64_ENDIAN_BIG���    1       AARCH64 big-endian
329                                           
330���SFRAME_ABI_AARCH64_ENDIAN_LITTLE��� 2       AARCH64 little-endian
331                                           
332���SFRAME_ABI_AMD64_ENDIAN_LITTLE���   3       AMD64 little-endian
333                                           
334
335   The presence of an explicit identification of ABI/arch in SFrame may
336allow stack trace generators to make certain ABI-specific decisions.
337
338
339File: sframe-spec.info,  Node: SFrame Function Descriptor Entries,  Next: SFrame Frame Row Entries,  Prev: SFrame Header,  Up: SFrame section
340
3412.3 SFrame FDE
342==============
343
344The SFrame Function Descriptor Entry sub-section is a sorted array of
345fixed-length SFrame function descriptor entries (SFrame FDEs).  Each
346SFrame FDE is a packed structure which contains information to describe
347a function���s stack trace information at a high-level.
348
349     typedef struct sframe_func_desc_entry
350     {
351       int32_t sfde_func_start_address;
352       uint32_t sfde_func_size;
353       uint32_t sfde_func_start_fre_off;
354       uint32_t sfde_func_num_fres;
355       uint8_t sfde_func_info;
356       uint8_t sfde_func_rep_size;
357       uint16_t sfde_func_padding2;
358     } ATTRIBUTE_PACKED sframe_func_desc_entry;
359
360   Every element of the SFrame function descriptor entry is naturally
361aligned.
362
363   ���sfde_func_start_fre_off��� is the offset to the first SFrame FRE for
364the function.  This offset is relative to the _end of the SFrame FDE_
365sub-section (unlike the offsets in the SFrame header, which are relative
366to the _end_ of the SFrame header).
367
368   ���sfde_func_info��� is the "info word", containing information on the
369FRE type and the FDE type for the function *Note The SFrame FDE info
370word::.
371
372   Following table describes each component of the SFrame FDE structure:
373
374Offset   Name                                 Description
375------------------------------------------------------------------------------------------
3760x00     ���int32_t sfde_func_start_address���    Signed 32-bit integral field denoting the
377                                              virtual memory address of the described
378                                              function.
379                                              
3800x04     ���uint32_t sfde_func_size���            Unsigned 32-bit integral field specifying
381                                              the size of the function in bytes.
382                                              
3830x08     ���uint32_t sfde_func_start_fre_off���   Unsigned 32-bit integral field specifying
384                                              the offset in bytes of the function���s
385                                              first SFrame FRE in the SFrame section.
386                                              
3870x0c     ���uint32_t sfde_func_num_fres���        Unsigned 32-bit integral field specifying
388                                              the total number of SFrame FREs used for
389                                              the function.
390                                              
3910x10     ���uint8_t sfde_func_info���             Unsigned 8-bit integral field specifying
392                                              the SFrame FDE info word.
393                                              *Note The SFrame FDE info word::.
394                                              
3950x11     ���uint8_t sfde_func_rep_size���         Unsigned 8-bit integral field specifying
396                                              the size of the repetitive code block for
397                                              which an SFrame FDE of type
398                                              SFRAME_FDE_TYPE_PCMASK is used.  For
399                                              example, in AMD64, the size of a pltN
400                                              entry is 16 bytes.
401                                              
4020x12     ���uint16_t sfde_func_padding2���        Padding of 2 bytes.  Currently unused
403                                              bytes.
404                                              
405
406* Menu:
407
408* The SFrame FDE info word::
409* The SFrame FDE types::
410* The SFrame FRE types::
411
412
413File: sframe-spec.info,  Node: The SFrame FDE info word,  Next: The SFrame FDE types,  Up: SFrame Function Descriptor Entries
414
4152.3.1 The SFrame FDE info word
416------------------------------
417
418The info word is a bitfield split into three parts.  From MSB to LSB:
419
420Bit offset   Name          Description
421----------------------------------------------------------------------------------------
4227���6          ���unused���      Unused bits.
423                           
4245            ���pauth_key���   Specify which key is used for signing the return addresses
425                           in the SFrame FDE. Two possible values:
426                           SFRAME_AARCH64_PAUTH_KEY_A (0), or
427                           SFRAME_AARCH64_PAUTH_KEY_B (1).
428                           
4294            ���fdetype���     Specify the SFrame FDE type.  Two possible values:
430                           SFRAME_FDE_TYPE_PCMASK (1), or
431                           SFRAME_FDE_TYPE_PCINC (0).
432                           *Note The SFrame FDE types::.
433                           
4340���3          ���fretype���     Choice of three SFrame FRE types.
435                           *Note The SFrame FRE types::.
436
437
438File: sframe-spec.info,  Node: The SFrame FDE types,  Next: The SFrame FRE types,  Prev: The SFrame FDE info word,  Up: SFrame Function Descriptor Entries
439
4402.3.2 The SFrame FDE types
441--------------------------
442
443SFrame format defines two types of FDE entries.  The choice of which
444SFrame FDE type to use is made based on the instruction patterns in the
445relevant program stub.
446
447   An SFrame FDE of type ���SFRAME_FDE_TYPE_PCINC��� is an indication that
448the PCs in the FREs should be treated as increments in bytes.  This is
449used fo the the bulk of the executable code of a program, which contains
450instructions with no specific pattern.
451
452   In contrast, an SFrame FDE of type ���SFRAME_FDE_TYPE_PCMASK��� is an
453indication that the PCs in the FREs should be treated as masks.  This
454type is useful for the cases where a small pattern of instructions in a
455program stub is used repeatedly for a specific functionality.  Typical
456usecases are pltN entries and trampolines.
457
458Name of SFrame FDE       Value   Description
459type                             
460---------------------------------------------------------------------------
461SFRAME_FDE_TYPE_PCINC    0       Unwinders perform a
462                                 (PC >= FRE_START_ADDR) to look up a
463                                 matching FRE.
464                                 
465SFRAME_FDE_TYPE_PCMASK   1       Unwinders perform a
466                                 (PC % REP_BLOCK_SIZE
467                                 >= FRE_START_ADDR) to look up a
468                                 matching FRE. REP_BLOCK_SIZE is the
469                                 size in bytes of the repeating block of
470                                 program instructions.
471                                 
472
473
474File: sframe-spec.info,  Node: The SFrame FRE types,  Prev: The SFrame FDE types,  Up: SFrame Function Descriptor Entries
475
4762.3.3 The SFrame FRE types
477--------------------------
478
479A real world application can have functions of size big and small.
480SFrame format defines three types of SFrame FRE entries to represent the
481stack trace information for such a variety of function sizes.  These
482representations vary in the number of bits needed to encode the start
483address offset in the SFrame FRE.
484
485   The following constants are defined and used to identify the SFrame
486FRE types:
487
488Name                    Value     Description
489                                  
490--------------------------------------------------------------------------
491���SFRAME_FRE_TYPE_ADDR1��� 0         The start address offset (in bytes)
492                                  of the SFrame FRE is an unsigned
493                                  8-bit value.
494                                  
495���SFRAME_FRE_TYPE_ADDR2��� 1         The start address offset (in bytes)
496                                  of the SFrame FRE is an unsigned
497                                  16-bit value.
498                                  
499���SFRAME_FRE_TYPE_ADDR4��� 2         The start address offset (in bytes)
500                                  of the SFrame FRE is an unsigned
501                                  32-bit value.
502
503   A single function must use the same type of SFrame FRE throughout.
504An identifier to reflect the chosen SFrame FRE type is stored in the
505*Note The SFrame FDE info word::.
506
507
508File: sframe-spec.info,  Node: SFrame Frame Row Entries,  Prev: SFrame Function Descriptor Entries,  Up: SFrame section
509
5102.4 SFrame FRE
511==============
512
513The SFrame Frame Row Entry sub-section contains the core of the stack
514trace information.
515
516   An SFrame Frame Row Entry is a self-sufficient record containing
517SFrame stack trace information for a range of contiguous addresses,
518starting at the specified offset from the start of the function.  Each
519SFrame Frame Row Entry is followed by S*N bytes, where:
520
521   ��� ���S��� is the size of the stack frame offset for the FRE, and
522   ��� ���N��� is the number of stack frame offsets in the FRE
523
524   The stack offsets, following the FRE, are interpreted in order as
525follows:
526
527   ��� The first offset is always used to locate the CFA, by interpreting
528     it as: CFA = ���BASE_REG��� + offset1.
529   ��� If RA is being tracked, the second offset is always used to locate
530     the RA, by interpreting it as: RA = CFA + offset2.  If RA is _not_
531     being tracked _and_ FP is being tracked, the second offset will be
532     used to locate the FP, by interpreting it as: FP = CFA + offset2.
533   ��� If both RA and FP are being tracked, the third offset will be used
534     to locate the FP, by interpreting it as FP = CFA + offset3.
535
536   The entities ���S���, ���N��� and ���BASE_REG��� are identified using the SFrame
537FRE info word, a.k.a.  the ���sframe_fre_info��� *Note The SFrame FRE info
538word::.
539
540   Following are the definitions of the allowed SFrame FRE:
541
542     typedef struct sframe_frame_row_entry_addr1
543     {
544       uint8_t sfre_start_address;
545       sframe_fre_info sfre_info;
546     } ATTRIBUTE_PACKED sframe_frame_row_entry_addr1;
547
548     typedef struct sframe_frame_row_entry_addr2
549     {
550       uint16_t sfre_start_address;
551       sframe_fre_info sfre_info;
552     } ATTRIBUTE_PACKED sframe_frame_row_entry_addr2;
553
554     typedef struct sframe_frame_row_entry_addr4
555     {
556       uint32_t sfre_start_address;
557       sframe_fre_info sfre_info;
558     } ATTRIBUTE_PACKED sframe_frame_row_entry_addr4;
559
560   For ensuring compactness, SFrame frame row entries are stored
561unaligned on disk.  Appropriate mechanisms need to be employed, as
562necessary, by the serializing and deserializing entities, if unaligned
563accesses need to be avoided.
564
565   ���sfre_start_address��� is an unsigned 8-bit/16-bit/32-bit integral
566field identifies the start address of the range of program counters, for
567which the SFrame FRE applies.  The value encoded in the
568���sfre_start_address��� field is the offset in bytes of the start address
569of the SFrame FRE, from the start address of the function.
570
571   Further FRE types may be added in future.
572
573* Menu:
574
575* The SFrame FRE info word::
576
577
578File: sframe-spec.info,  Node: The SFrame FRE info word,  Up: SFrame Frame Row Entries
579
5802.4.1 The SFrame FRE info word
581------------------------------
582
583The SFrame FRE info word is a bitfield split into four parts.  From MSB
584to LSB:
585
586Bit offset   Name                    Description
587-------------------------------------------------------------------------------------
5887            ���fre_mangled_ra_p���      Indicate whether the return address is
589                                     mangled with any authorization bits (signed
590                                     RA).
591                                     
5925-6          ���fre_offset_size���       Size of stack offsets in bytes.  Valid values
593                                     are:
594                                     SFRAME_FRE_OFFSET_1B,
595                                     SFRAME_FRE_OFFSET_2B, and
596                                     SFRAME_FRE_OFFSET_4B.
597                                     
5981-4          ���fre_offset_count���      A value of upto 3 is allowed to track all
599                                     three of CFA, FP and RA.
600                                     
6010            ���fre_cfa_base_reg_id���   Distinguish between SP or FP based CFA
602                                     recovery.
603                                     
604
605Name                   Value     Description
606                                 
607--------------------------------------------------------------------------------
608���SFRAME_FRE_OFFSET_1B��� 0         All stack offsets following the fixed-length
609                                 FRE structure are 1 byte long.
610                                 
611���SFRAME_FRE_OFFSET_2B��� 1         All stack offsets following the fixed-length
612                                 FRE structure are 2 bytes long.
613                                 
614���SFRAME_FRE_OFFSET_4B��� 2         All stack offsets following the fixed-length
615                                 FRE structure are 4 bytes long.
616                                 
617
618
619File: sframe-spec.info,  Node: Index,  Prev: SFrame section,  Up: Top
620
621Index
622*****
623
624[index]
625* Menu:
626
627* Changes from Version 1 to Version 2:   Changes from Version 1 to Version 2.
628                                                               (line  6)
629* endianness:                            SFrame endianness.    (line  6)
630* Introduction:                          Introduction.         (line  6)
631* Overview:                              Overview.             (line  6)
632* SFrame ABI/arch identifier:            SFrame ABI/arch identifier.
633                                                               (line  6)
634* SFrame FDE:                            SFrame Function Descriptor Entries.
635                                                               (line  6)
636* SFrame flags:                          SFrame flags.         (line  6)
637* SFrame FRE:                            SFrame Frame Row Entries.
638                                                               (line  6)
639* SFrame header:                         SFrame Header.        (line  6)
640* SFrame preamble:                       SFrame Preamble.      (line  6)
641* SFrame section:                        SFrame section.       (line  6)
642* SFrame versions:                       SFrame version.       (line  9)
643* SFRAME_ABI_AARCH64_ENDIAN_BIG:         SFrame ABI/arch identifier.
644                                                               (line 13)
645* SFRAME_ABI_AARCH64_ENDIAN_LITTLE:      SFrame ABI/arch identifier.
646                                                               (line 16)
647* SFRAME_ABI_AMD64_ENDIAN_LITTLE:        SFrame ABI/arch identifier.
648                                                               (line 18)
649* SFRAME_FDE_TYPE_PCINC:                 The SFrame FDE types. (line  6)
650* SFRAME_FDE_TYPE_PCMASK:                The SFrame FDE types. (line  6)
651* SFRAME_FRE_OFFSET_1B:                  The SFrame FRE info word.
652                                                               (line 30)
653* SFRAME_FRE_OFFSET_2B:                  The SFrame FRE info word.
654                                                               (line 34)
655* SFRAME_FRE_OFFSET_4B:                  The SFrame FRE info word.
656                                                               (line 37)
657* SFRAME_FRE_TYPE_ADDR1:                 The SFrame FRE types. (line 17)
658* SFRAME_FRE_TYPE_ADDR2:                 The SFrame FRE types. (line 22)
659* SFRAME_FRE_TYPE_ADDR4:                 The SFrame FRE types. (line 26)
660* SFRAME_F_FDE_SORTED:                   SFrame flags.         (line 11)
661* SFRAME_F_FRAME_POINTER:                SFrame flags.         (line 14)
662* SFRAME_MAGIC:                          SFrame Preamble.      (line 24)
663* SFRAME_VERSION_1:                      SFrame version.       (line  9)
664* The SFrame FDE info word:              SFrame Function Descriptor Entries.
665                                                               (line 73)
666* The SFrame FRE info word:              SFrame Frame Row Entries.
667                                                               (line 69)
668
669
670
671Tag Table:
672Node: Top569
673Node: Introduction1159
674Node: Overview1345
675Node: Changes from Version 1 to Version 22932
676Node: SFrame section3709
677Node: SFrame Preamble4185
678Node: SFrame endianness5624
679Node: SFrame version6088
680Node: SFrame flags6664
681Node: SFrame Header7396
682Node: SFrame ABI/arch identifier12592
683Node: SFrame Function Descriptor Entries13627
684Node: The SFrame FDE info word17329
685Node: The SFrame FDE types18504
686Node: The SFrame FRE types20233
687Node: SFrame Frame Row Entries21777
688Node: The SFrame FRE info word24470
689Node: Index26480
690
691End Tag Table
692
693
694Local Variables:
695coding: utf-8
696End:
697