25 return (60 - (13 * (4 - i)));
29 return (32 - (13 * (2 - i)));
80 if (!descriptor.get() || !descriptor->IsValid())
83 uint64_t info_bits(0), value_bits(0), payload(0);
85 if (descriptor->GetTaggedPointerInfo(&info_bits, &value_bits, &payload)) {
92 bool has_indexes(
false), has_length(
false);
94 for (
size_t x = 0; x < descriptor->GetNumIVars(); x++) {
95 const auto &ivar = descriptor->GetIVarAtIndex(x);
96 if (ivar.m_name == g__indexes) {
99 }
else if (ivar.m_name == g__length) {
104 if (has_length && has_indexes)
108 if (has_length && has_indexes) {
191 Scalar scalar((
unsigned long long)value.first);
194 Scalar scalar((
unsigned int)value.first);
201 idx_name.
Printf(
"[%" PRIu64
"]", (uint64_t)idx);
233 static const uint64_t PACKED_INDEX_MASK = ((1 << 13) - 1);
310namespace formatters {
static constexpr size_t PACKED_INDEX_SHIFT_32(size_t i)
static constexpr size_t PACKED_INDEX_SHIFT_64(size_t i)
lldb::ValueObjectSP GetChildAtIndex(uint32_t idx) override
llvm::Expected< uint32_t > CalculateNumChildren() override
struct NSIndexPathSyntheticFrontEnd::Impl m_impl
lldb::ChildCacheState Update() override
This function is assumed to always succeed and if it fails, the front-end should know to deal with it...
~NSIndexPathSyntheticFrontEnd() override=default
CompilerType m_uint_star_type
NSIndexPathSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp)
ObjCLanguageRuntime::ClassDescriptorSP m_descriptor_sp
size_t GetIndexOfChildWithName(ConstString name) override
bool MightHaveChildren() override
lldb::ValueObjectSP GetSyntheticValue() override
Generic representation of a type in a programming language.
TypeSystemSPWrapper GetTypeSystem() const
Accessors.
CompilerType GetPointerType() const
Return a new CompilerType that is a pointer to this type.
A uniqued constant string class.
const char * GetCString() const
Get the string value as a C string.
lldb::TargetSP GetTargetSP() const
Get accessor that creates a strong reference from the weak target reference contained in this object.
std::shared_ptr< ClassDescriptor > ClassDescriptorSP
static ObjCLanguageRuntime * Get(Process &process)
virtual ClassDescriptorSP GetClassDescriptor(ValueObject &in_value)
A plug-in interface definition class for debugging a process.
uint32_t GetAddressByteSize() const
static lldb::TypeSystemClangSP GetForTarget(Target &target, std::optional< IsolatedASTKind > ast_kind=DefaultAST, bool create_on_demand=true)
Returns the scratch TypeSystemClang for the given target.
llvm::StringRef GetString() const
size_t Printf(const char *format,...) __attribute__((format(printf
Output printf formatted output to the stream.
uint32_t CalculateNumChildrenIgnoringErrors(uint32_t max=UINT32_MAX)
static lldb::ValueObjectSP Create(ExecutionContextScope *exe_scope, lldb::ByteOrder byte_order, uint32_t addr_byte_size, lldb::addr_t address=LLDB_INVALID_ADDRESS)
CompilerType GetCompilerType()
lldb::ProcessSP GetProcessSP() const
virtual lldb::ValueObjectSP GetSyntheticChildAtOffset(uint32_t offset, const CompilerType &type, bool can_create, ConstString name_const_str=ConstString())
lldb::TargetSP GetTargetSP() const
lldb::ValueObjectSP GetSyntheticArrayMember(size_t index, bool can_create)
const ExecutionContextRef & GetExecutionContextRef() const
void SetCompilerType(const CompilerType &compiler_type)
A class that represents a running process on the host machine.
ChildCacheState
Specifies if children need to be re-computed after a call to SyntheticChildrenFrontEnd::Update.
@ eRefetch
Children need to be recomputed dynamically.
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP
std::shared_ptr< lldb_private::Process > ProcessSP
void SetIndexes(uint64_t value, Process &p)
size_t _lengthForInlinePayload(uint32_t ptr_size)
lldb::ValueObjectSP GetIndexAtIndex(size_t idx, const CompilerType &desired_type)
std::pair< uint64_t, bool > _indexAtPositionForInlinePayload(size_t pos)
lldb::ValueObjectSP GetIndexAtIndex(size_t idx)
lldb::ValueObjectSP GetIndexAtIndex(size_t idx, const CompilerType &desired_type)
struct OutsourcedIndexes m_outsourced
struct InlinedIndexes m_inlined