Lines Matching full:description
218 The DW_OP_regx operation creates a location description that specifies the
229 location description in the location area.
266 address to create a global memory location description, which is placed in the
267 location area. The result of the expression is the location description in the
279 Each part specifies a location description and the number of bytes used from it.
280 The following operation expression creates a composite location description.
290 The DW_OP_regx operation creates a register location description in the location
296 description in the location area with a single part. The location description in
303 description already in the location area. The parts form a contiguous set of
306 description. Again, the operand specifies the size of the part in bytes. The
307 undefined location description can be used to indicate a part that has been
322 stack, the new part is a memory location description. The memory address used is
330 an incomplete composite location description, the incomplete composite location
331 is implicitly converted to a complete composite location description. The result
332 of the expression is the location description in the location area.
339 location description it created. The [3.2.3 Variable Location in
357 To offset a composite location description, the compiler would need to make a
358 different composite location description, starting at the part corresponding to
378 `DW_AT_use_location`, which is defined as encoding a location description which
388 It then evaluates the location description associated with the
434 Note the location description for `DW_AT_use_location` is `DW_OP_plus`, which
548 description", as is described in [Type Entries](#type-entries).
570 * Otherwise, it encodes a location description to compute the address of the
573 Only the attribute describing a subobject, and only the location description
578 then evaluates the location description associated with the
734 "address" with "location description", as is described in [A.5 Type Entries](#type-entries).
774 ## 4.1 Location Description
781 Each kind of location description is conceptually a zero-based offset within a
797 ## 4.2 Stack Location Description Operations
800 value or a location description.
803 value to a location description, or vice versa, so that all DWARF 5 expressions
805 effectively used as a proxy for a memory location description.
808 the expression is to be evaluated as a value or a location description.
811 are generalized to act on any location description kind. For example, the
812 DW_OP_deref operation pops a location description rather than a memory address
814 starting at the location description's offset.
822 DW_OP_offset operation that modifies the offset of the location description on
832 location description. Currently this is only possible as a piece of a composite
859 The DW_OP_regx pushes a register location description on the stack. The storage
861 description conceptually references that storage with an initial offset of 0.
866 The DW_OP_offset_uconst pops a location description off the stack, adds its
867 operand value to the offset, and pushes the updated location description back on
873 The result of the expression evaluation is the location description on the top
903 has to occupy two vector registers. A composite location description is created
923 The DW_OP_regx VGPR0 pushes a location description for the first register.
936 The DW_OP_offset adjusts the register location description's offset to the
941 The DW_OP_piece either creates a new composite location description, or adds a
942 new part to an existing incomplete one. It pops the location description to use
944 composite location description, otherwise it creates a new incomplete composite
945 location description with no parts. Finally it pushes the incomplete composite
948 In this case a register location description is added to a new incomplete
949 composite location description. The 4 of the DW_OP_piece specifies the size of
954 an incomplete composite, an undefined location description is used for the part.
956 converted to a global memory location description with an offset equal to the
963 VGPR1 register location description is added as a second part.
978 composite location description, it is converted to a complete location
979 description and returned as the result.
1008 The DW_OP_addr operation pushes a global memory location description on the
1013 The next DW_OP_piece adds the global memory location description as the next 2
1019 description on the stack. The storage of the implicit location description is
1027 The final DW_OP_piece adds 2 bytes of the implicit location description as the
1028 third part of the composite location description.
1033 description into a complete location description. This allows a complete
1034 composite location description to be created on the stack that can be used as
1035 the location description of another following operation. For example, the
1080 location description is pushed which refers to the address space's storage, with
1096 like for any other kind of location description.
1102 contents. There is no operation to actually create a location description that
1106 Since DW_OP_piece now takes any kind of location description for its pieces, it
1125 The following example defines a location description for a source variable that
1142 The DW_OP_bit_offset operation pops a value and location description from the
1143 stack. It pushes the location description after updating its offset using the
1162 description, and operations to create locations in address spaces.
1167 using a global memory address as a proxy for a memory location description. This
1175 address space, be described by a composite location description, or could even
1176 be an implicit location description.
1182 Allowing any kind of location description on the stack permits the DW_OP_call*
1196 operations to work with any kind of location description enables creating
1209 description out of a location description, an element size, and an element
1211 elements with each element being the same location description of the specified
1214 A DW_OP_select_bit_piece operation could create a composite location description
1228 composite location description out of two location descriptions, an offset
1231 description replacing a slice defined by the offset and size. This could be used
1263 location description, or a DWARF operation expression that uses the
1265 expression that returned a location description involving multiple places.
1275 offset to each single location description. The DW_OP_deref* operations simply
1306 ## A.2 General Description
1322 Value](#dwarf-expression-value)) or a location description (see [2.5.3 DWARF
1323 Location Description](#dwarf-location-description)). When a DWARF expression
1324 is evaluated, it may be specified whether a value or location description is
1329 [2.5.4.4.3 Memory Location Description Operations](#memory-location-description-operations)
1337 > descriptions having an undefined location description. Then operations that
1338 > encounter an evaluation error can return the undefined location description or
1368 it can be a location description or a value.
1485 The location description of a program object.
1494 The result is undefined if the location description is invalid (see [2.5.3
1495 DWARF Location Description](#dwarf-location-description)).
1508 DWARF Location Description](#dwarf-location-description)).
1513 <i>A DWARF expression for a location description may be able to be evaluated
1557 #### A.2.5.3 DWARF Location Description
1573 A single location description specifies the location storage that holds a
1627 If a location description has more than one single location description, the
1629 description's position within the associated location storage is not the same
1632 <i>A location description that has more than one single location description can
1635 description that has more than one single location description. There are no
1636 operation expression operations that can directly create a location description
1637 with more than one single location description.</i>
1639 <i>A location description with more than one single location description can be
1649 <i>A consumer of a location description with more than one single location
1650 description can read the object's value from any of the single location
1654 Updating a location description L by a bit offset B is defined as adding the
1655 value of B to the bit offset of each single location description SL of L. It is
1660 location description. If such a location description is accessed, the storage it
1662 location description was created, which may differ from the context at the time
1665 <i>For example, creating a register location description requires the thread
1667 Creating a memory location description for an address space may required a
1671 If any of the context elements required to create a location description change,
1672 the location description becomes invalid and accessing it is undefined.
1674 <i>Examples of context that can invalidate a location description are:</i>
1689 <i>A DWARF expression can be used to compute a location description for an
1691 location description as the object context or initial stack context to compute a
1693 description becomes invalid between the two expression evaluations.</i>
1695 A change of a thread's program location may not make a location description
1697 location description, or using it as the object context or initial stack context
1700 <i>For example, a location description may specify a register that no longer
1712 entry can hold either a value or a location description. Operations can act on
1716 (see [2.5.4.4.3 Memory Location Description Operations](#memory-location-description-operations)),
1730 - If the current result kind specifies a location description, then:
1731 - If the stack is empty, the result is a location description with one
1732 undefined location description.
1737 - If the top stack entry is a location description, or can be converted to one
1738 … (see [2.5.4.4.3 Memory Location Description Operations](#memory-location-description-operations)),
1739 then the result is that, possibly converted, location description. Any other entries on the
1743 > NOTE: Could define this case as returning an implicit location description
1748 [2.5.4.4.3 Memory Location Description Operations](#memory-location-description-operations)),
1753 - If the stack is empty, the result is a location description with one
1754 undefined location description.
1760 > description is requested. However, GDB appears to report this as an error
1783 They allow the stack entries to be either a value or location description.
1786 location description (see [2.5.4.4.6 Composite Location Description Operations]
1787 (#composite-location-description-operations)), then the DWARF expression is ill-formed.
1794 > storage specified by the incomplete composite location description is also
1796 > incomplete composite location description can update the composite location
1945 location description, the compilation unit is the one that contains D, and
1946 the initial stack is empty. The location description result is pushed on
1952 > location description for a variable or formal parameter which may use a
1963 > location description on the stack. Presumably the intent of using
1965 > entry is to push just one location description on the stack. That
1966 > location description may have more than one single location description.
1978 > description on the stack for a variable or formal parameter, and also
1986 > pushes a location description (that may have multiple single location
2000 > location description. The producer then explicitly indicates the intent
2016 > except the result kind is a location description, the compilation unit
2018 > description result is pushed on the stack.
2024 description for any variable or formal parameter regardless of whether the
2031 > operation expression that results in a location description with one
2032 > implicit location description. Then this rule would not be required.
2039 > `DW_OP_call*` to get a location description for any
2173 > extensions allow a composite location description to be used to combine
2223 It pops one stack entry that must be a location description L.
2228 <i>If L, or the location description of any composite location description
2230 description, then any one of them can be selected as they are required to
2231 all have the same value. For any single location description SL, bits are
2233 specified by SL. For a composite location description, the retrieved bits
2240 > location description that has less than TS bits remaining in the register
2262 location storage LS specified by any single location description SL of L.
2264 …See [2.5.4.4.5 Implicit Location Description Operations](#implicit-location-description-operations)
2281 It creates a location description L with one memory location description SL.
2290 the location storage selected when the location description was created is
2311 It creates a location description L as described for `DW_OP_xderef`.
2329 It creates a location description L as described for `DW_OP_xderef`.
2355 If the result of E is a location description L (see [2.5.4.4.4 Register
2356 Location Description
2357 Operations](#register-location-description-operations)), and the last
2386 ##### A.2.5.4.4 Location Description Operations
2391 ###### A.2.5.4.4.1 General Location Description Operations
2397 `DW_OP_push_object_address` pushes the location description L of the current
2402 description may be determined from the variable's own debugging information
2409 location description of a structure prior to evaluation of a
2412 > NOTE: This operation could be removed and the object location description
2438 ###### A.2.5.4.4.2 Undefined Location Description Operations
2446 An undefined location description specifies the undefined location storage.
2448 offset for an undefined location description. The `DW_OP_*piece` operations can
2449 implicitly specify an undefined location description, allowing any size and
2452 ###### A.2.5.4.4.3 Memory Location Description Operations
2468 A memory location description specifies a memory location storage. The bit
2470 using a memory location description, access the corresponding target
2474 A memory location description that has a bit offset that is a multiple of 8 (the
2475 byte size) is defined to be a byte address memory location description. It has a
2478 A memory location description that does not have a bit offset that is a multiple
2479 of 8 (the byte size) is defined to be a bit field memory location description.
2483 The address space AS of a memory location description is defined to be the
2485 the memory location description.
2487 A location description that is comprised of one byte address memory location
2488 description SL is defined to be a memory byte address location description. It
2494 If a stack entry is required to be a location description, but it is a value V
2495 with the generic type, then it is implicitly converted to a location description
2496 L with one memory location description SL. SL specifies the memory location
2501 > converted to a memory location description in the target architecture default
2504 > > If a stack entry is required to be a location description, but is a value V
2506 > > description L with a one memory location description SL. If the type size of
2520 If a stack entry is required to be a location description, but it is an implicit
2522 implicitly converted to a location description with one single location
2523 description specified by IPV. See
2524 [2.5.4.4.5 Implicit Location Description Operations](#implicit-location-description-operations).
2526 If a stack entry is required to be a value, but it is a location description L
2527 with one memory location description SL in the target architecture default
2537 It pushes a location description L with one memory location description SL
2554 It pushes a location description L with one memory location description SL
2569 It pushes a location description L with one memory location description SL
2571 description that corresponds to the thread-local storage address TA.
2598 `DW_OP_call_frame_cfa` pushes the location description L of the Canonical
2617 The location description L for the <i>frame base</i> of the current
2622 The location description L is updated by bit offset B scaled by 8 (the byte
2647 They push a location description L comprising one memory location
2648 description LS on the stack. LS specifies the memory location storage that
2660 ###### A.2.5.4.4.4 Register Location Description Operations
2668 A register location description specifies a register location storage. The bit
2670 register location description access the corresponding target architecture
2687 description L that specifies one register location description SL on the
2693 determine the location description that holds the register for the current
2695 location description L is pushed.
2698 description may be register, memory, or undefined.</i>
2709 register location description.</i>
2711 ###### A.2.5.4.4.5 Implicit Location Description Operations
2719 An implicit location description specifies an implicit location storage. The bit
2721 accessed using an implicit location description, access the corresponding
2733 It pushes location description L with one implicit location description SL
2743 It pushes a location description L with one implicit location description SL
2748 location description specifies the actual value of the object, rather than
2768 form, the location description specifies a debugging information entry that
2769 represents the actual location description of the object to which the
2795 It pushes a location description L that comprises one implicit location
2796 description SL on the stack. SL specifies LS with a bit offset of 0.
2799 description L', and retrieves S bits, such that any retrieved bits come from
2803 1. All retrieved bits come from an implicit location description that
2807 location description, as L' may involve composite location
2822 If IPV is either implicitly converted to a location description (only done
2824 location description RL is:
2828 that the result kind is a location description, the compilation unit is
2839 comprises one implicit location description SRL. SRL specifies RLS with a
2844 > location description, then this rule would not be required.
2848 The location description RL is updated by bit offset B scaled by 8 (the byte
2852 then it pushes a location description that is the same as L.
2856 <i>The restrictions on how an implicit pointer location description created
2879 ###### A.2.5.4.4.6 Composite Location Description Operations
2887 Each part has a part location description L and a part bit size S. L can have
2902 A composite location description specifies a composite location storage. The bit
2917 A composite location description that specifies a composite location storage
2918 that is incomplete is termed an incomplete composite location description. A
2919 composite location description that specifies a composite location storage that
2920 is complete is termed a complete composite location description.
2922 If the top stack entry is a location description that has one incomplete
2923 composite location description SL after the execution of an operation expression
2924 has completed, SL is converted to a complete composite location description.
2932 If a stack entry is required to be a location description L, but L has an
2933 incomplete composite location description, then the DWARF expression is
2935 creating a composite location description as described below.
2938 location descriptions from any other location description, including those that
2942 <i>The incremental composite location description operations are defined to be
2952 - If the stack is empty, then a location description L comprised of one
2953 incomplete composite location description SL is pushed on the stack.
2956 P. P specifies a location description PL and has a bit size of S scaled by
2957 8 (the byte size). PL is comprised of one undefined location description
2962 - Otherwise, if the top stack entry is a location description L comprised of
2963 one incomplete composite location description SL, then the incomplete
2965 part P. P specifies a location description PL and has a bit size of S
2967 description PSL. L is left on the stack.
2968 - Otherwise, if the top stack entry is a location description or can be
2970 description PL. Then:
2972 - If the top stack entry (after popping PL) is a location description L
2973 comprised of one incomplete composite location description SL, then the
2975 append a new part P. P specifies the location description PL and has a
2977 - Otherwise, a location description L comprised of one
2978 incomplete composite location description SL is pushed on
2982 part P. P specifies the location description PL and has a bit size of S
3000 > description. Not only would this be a simpler operation and avoid the
3012 has the bit size S, and the location description PL of any created part is
3017 description.</i>
3033 1. <i>Bounded location description</i>
3036 evaluates to the location description of an object that is valid over a
3045 There are several kinds of bounded location description entries which differ
3048 2. <i>Default location description</i>
3051 evaluates to the location description of an object that is valid when no
3052 bounded location description entry applies.
3055 within the range of any bounded location description entry.
3061 bounded location description entries. The applicable base address of a
3062 bounded location description entry is the address specified by the closest
3076 The address ranges defined by the bounded location description entries of a
3082 defined, and there is no following default location description entry, it is
3098 description that comprises one undefined location description.
3101 description, the object is unspecified, and the initial stack is empty. The
3102 location list entry result is the location description returned by the
3105 The result is a location description that is comprised of the union of the
3106 single location descriptions of the location description result of each
3119 evaluated with an initial stack that includes a location description that may
3144 has a result kind of a location description, an unspecified object, the
3148 description L of the place where the return address for the current call
3152 description for one of the target architecture specific address spaces.
3164 has a result kind of a location description, an unspecified object, the
3170 resulting location description L is not comprised of one single location
3171 description SL.
3173 If SL is a register location description for register R, then L is replaced
3175 the frame base memory location description in the target architecture
3182 > required location description directly using `DW_OP_call_frame_cfa` or
3187 description in any of the target architecture specific address spaces.
3199 has a result kind of a location description, an unspecified object, the
3203 description L of the <i>canonical frame address</i> (see [6.4 Call Frame
3209 description for one of the target architecture specific address spaces.
3234 E<sub>2</sub> with a context that has a result kind of a location description,
3238 description L<sub>2</sub> is the location where the referenced parameter lives
3305 has a result kind of a location description, an unspecified object, the
3309 description of the base of the data object.
3314 > NOTE: Delete the description of how the `DW_OP_call*` operations evaluate
3324 > supporting evaluating the location description of an object, and using a
3335 > description now that any location description can be used within a DWARF
3337 > the location description of any variable regardless of how it is
3345 result kind of a location description, an unspecified object, the compilation
3348 focused, if any. The result of the evaluation is the location description of the
3368 the location description of the beginning of the containing entity by B
3369 scaled by 8 (the byte size). The result is the location description of
3377 with a context that has a result kind of a location description, an
3379 stack comprising the location description of the beginning of the
3382 any. The result of the evaluation is the location description of the
3386 > description, including those with more than one single location
3387 > description, and those with single location descriptions that are of any
3396 has a result kind of a location description, an unspecified object, the
3398 description of the object of the enclosing type, and other context elements
3400 is focused, if any. The result of the evaluation is the location description
3408 to compute the location description of the member of the class to which the
3411 <i>The method used to find the location description of a given member of a
3418 location description for a particular object of the given pointer to member type
3422 a result kind of a location description, an unspecified object, the compilation
3426 member object itself. The second stack entry is the location description of the
3429 description of the member of the class to which the pointer to member entry
3439 location description of the data for an object. When this attribute is omitted,
3440 the location description of the data is the same as the location description of
3444 a result kind of a location description, an object that is the location
3445 description of the data descriptor, the compilation unit that contains E, an
3448 of the evaluation is the location description of the base of the member entry.
3451 `DW_OP_push_object_address` operation which loads the location description
3463 > having an initial stack with the location description of the object since the
3479 > unwind DWARF expressions are generalized to allow any location description,
3490 description (see [2.5.4.4.2 Undefined Location Description
3491 Operations](#undefined-location-description-operations)).
3500 register is the location description L that specifies one register location
3501 description SL. SL specifies the register location storage that corresponds
3505 register is the location description obtained using the call frame
3515 the location description L. Where L is the location description of the
3523 byte address of the location description L. Where L is the location
3524 description of the current CFA (see [2.5.4 DWARF Operation
3528 The DWARF is ill-formed if the CFA location description is not a memory byte
3529 address location description, or if the register size does not match the
3532 <i>Since the CFA location description is required to be a memory byte
3533 address location description, the value of val_offset(N) will also be a
3534 memory byte address location description since it is offsetting the CFA
3535 location description by N bytes. Furthermore, the value of val_offset(N)
3555 The previous value of this register is the location description obtained
3569 The previous value of this register is located at the location description
3574 location description, the compilation unit is unspecified, the object is
3575 unspecified, and an initial stack comprising the location description of the
3582 description created from the value produced by evaluating the DWARF
3588 initial stack comprising the location description of the current CFA (see
3599 > location description of any size.
3606 Frame Description Entries (FDE). There is at least one CIE in every non-empty
3770 as a location description.
3778 `DW_OP_bregx R, B * data_alignment_factor` as a location description.
3788 operation expression `DW_OP_bregx R, B` as a location description. B is the
3800 description. R is the old CFA register number.
3811 location description. R is the old CFA register number.
3825 is a location description, the compilation unit is unspecified, the object
3832 address location description.
3908 <i>That is, E computes the location description where the register value can
4002 many figures that help illustrate the textual description, especially of the