Lines Matching +full:address +full:- +full:data

1 //===-- Symbol.h ------------------------------------------------*- C++ -*-===//
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
18 #include "lldb/lldb-private.h"
24 std::optional<uint64_t> address;
69 // an Address object that contains an constant integer value in
71 // represent an absolute address since it has no section.
72 Address &GetAddressRef() { return m_addr_range.GetBaseAddress(); }
74 const Address &GetAddressRef() const { return m_addr_range.GetBaseAddress(); }
76 // Makes sure the symbol's value is an address and returns the file address.
77 // Returns LLDB_INVALID_ADDRESS if the symbol's value isn't an address.
80 // Makes sure the symbol's value is an address and gets the load address
82 // value isn't an address or if the section isn't loaded in \a target.
85 // Access the address value. Do NOT hand out the AddressRange as an object as
86 // the byte size of the address range may not be filled in and it should be
88 Address GetAddress() const {
89 // Make sure the our value is an address before we hand a copy out. We use
90 // the Address inside m_addr_range to contain the value for symbols that
91 // are not address based symbols so we are using it for more than just
95 // GetAddress() accessor, we need to hand out an invalid address if the
96 // symbol's value isn't an address.
100 return Address();
105 /// If the symbol's value is an address, return the file address, else return
106 /// the raw value that is stored in the m_addr_range. If the base address has
107 /// no section, then getting the file address will return the correct value
108 /// as it will return the offset in the base address which is the value.
113 // When a symbol's value isn't an address, we need to access the raw value.
114 // This function will ensure this symbol's value isn't an address and return
116 // "fail_value" if the symbol is an address value.
119 // This symbol's value is an address. Use Symbol::GetAddress() to get the
120 // address.
123 // The value is stored in the base address' offset
264 /// Decode a serialized version of this object from data.
266 /// \param data
267 /// The decoder object that references the serialized data.
270 /// A pointer that contains the offset from which the data will be decoded
271 /// from that gets updated as data gets decoded.
274 /// A section list that allows lldb_private::Address objects to be filled
275 /// in. The address information for symbols are serilized as file addresses
276 /// and must be converted into Address objects with the right section and
282 /// table offsets in the cache data.
286 bool Decode(const DataExtractor &data, lldb::offset_t *offset_ptr,
289 /// Encode this object into a data encoder object.
294 /// A data encoder object that serialized bytes will be encoded into.
299 /// table offsets in the cache data.
318 uint16_t m_type_data = 0; // data specific to m_type
319 uint16_t m_type_data_resolved : 1, // True if the data in m_type_data has
321 m_is_synthetic : 1, // non-zero if this symbol is not actually in the
324 m_is_debug : 1, // non-zero if this symbol is debug information in a
326 m_is_external : 1, // non-zero if this symbol is globally visible
329 m_size_is_synthesized : 1, // non-zero if this symbol's size was
343 // address when the value is an address in a
346 // the ObjectFile plug-in can interpret these