LLDB mainline
ValueObjectConstResultChild.cpp
Go to the documentation of this file.
1//===-- ValueObjectConstResultChild.cpp -----------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
10
12namespace lldb_private {
13class DataExtractor;
14}
15namespace lldb_private {
16class Status;
17}
18namespace lldb_private {
19class ValueObject;
20}
21
22using namespace lldb_private;
23
25 ValueObject &parent, const CompilerType &compiler_type,
26 ConstString name, uint32_t byte_size, int32_t byte_offset,
27 uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset,
28 bool is_base_class, bool is_deref_of_parent, lldb::addr_t live_address,
29 uint64_t language_flags)
30 : ValueObjectChild(parent, compiler_type, name, byte_size, byte_offset,
31 bitfield_bit_size, bitfield_bit_offset, is_base_class,
32 is_deref_of_parent, eAddressTypeLoad, language_flags),
33 m_impl(this, live_address) {
34 m_name = name;
35}
36
38
40 return m_impl.Dereference(error);
41}
42
44 uint32_t offset, const CompilerType &type, bool can_create,
45 ConstString name_const_str) {
46 return m_impl.GetSyntheticChildAtOffset(offset, type, can_create,
47 name_const_str);
48}
49
51 return m_impl.AddressOf(error);
52}
53
55 bool scalar_is_load_address, AddressType* address_type) {
56 return m_impl.GetAddressOf(scalar_is_load_address, address_type);
57}
58
60 size_t idx, bool synthetic_array_member, int32_t synthetic_index) {
61 return m_impl.CreateChildAtIndex(idx, synthetic_array_member,
62 synthetic_index);
63}
64
66 uint32_t item_idx,
67 uint32_t item_count) {
68 return m_impl.GetPointeeData(data, item_idx, item_count);
69}
70
73 return m_impl.Cast(compiler_type);
74}
static llvm::raw_ostream & error(Stream &strm)
Generic representation of a type in a programming language.
Definition: CompilerType.h:36
A uniqued constant string class.
Definition: ConstString.h:40
An data extractor class.
Definition: DataExtractor.h:48
An error handling class.
Definition: Status.h:44
A child of another ValueObject.
ValueObject * CreateChildAtIndex(size_t idx, bool synthetic_array_member, int32_t synthetic_index) override
Should only be called by ValueObject::GetChildAtIndex().
lldb::ValueObjectSP GetSyntheticChildAtOffset(uint32_t offset, const CompilerType &type, bool can_create, ConstString name_const_str=ConstString()) override
lldb::addr_t GetAddressOf(bool scalar_is_load_address=true, AddressType *address_type=nullptr) override
size_t GetPointeeData(DataExtractor &data, uint32_t item_idx=0, uint32_t item_count=1) override
ValueObjectConstResultChild(ValueObject &parent, const CompilerType &compiler_type, ConstString name, uint32_t byte_size, int32_t byte_offset, uint32_t bitfield_bit_size, uint32_t bitfield_bit_offset, bool is_base_class, bool is_deref_of_parent, lldb::addr_t live_address, uint64_t language_flags)
lldb::ValueObjectSP DoCast(const CompilerType &compiler_type) override
lldb::ValueObjectSP AddressOf(Status &error) override
lldb::ValueObjectSP Dereference(Status &error) override
lldb::ValueObjectSP GetSyntheticChildAtOffset(uint32_t offset, const CompilerType &type, bool can_create, ConstString name_const_str=ConstString())
virtual size_t GetPointeeData(DataExtractor &data, uint32_t item_idx=0, uint32_t item_count=1)
ValueObject * CreateChildAtIndex(size_t idx, bool synthetic_array_member, int32_t synthetic_index)
lldb::ValueObjectSP Cast(const CompilerType &compiler_type)
virtual lldb::addr_t GetAddressOf(bool scalar_is_load_address=true, AddressType *address_type=nullptr)
lldb::ValueObjectSP Dereference(Status &error)
ConstString m_name
The name of this object.
Definition: ValueObject.h:844
A class that represents a running process on the host machine.
Definition: SBAttachInfo.h:14
@ eAddressTypeLoad
Address is an address as in the current target inferior process.
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
Definition: lldb-forward.h:472
uint64_t addr_t
Definition: lldb-types.h:79