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