25 return (60 - (13 * (4 - i)));
29 return (32 - (13 * (2 - i)));
78 if (!descriptor.get() || !descriptor->IsValid())
81 uint64_t info_bits(0), value_bits(0), payload(0);
83 if (descriptor->GetTaggedPointerInfo(&info_bits, &value_bits, &payload)) {
90 bool has_indexes(
false), has_length(
false);
92 for (
size_t x = 0; x < descriptor->GetNumIVars(); x++) {
93 const auto &ivar = descriptor->GetIVarAtIndex(x);
94 if (ivar.m_name == g__indexes) {
97 }
else if (ivar.m_name == g__length) {
102 if (has_length && has_indexes)
106 if (has_length && has_indexes) {
189 Scalar scalar((
unsigned long long)value.first);
192 Scalar scalar((
unsigned int)value.first);
199 idx_name.
Printf(
"[%" PRIu64
"]", (uint64_t)idx);
231 static const uint64_t PACKED_INDEX_MASK = ((1 << 13) - 1);
308namespace formatters {
312 lldb::ValueObjectSP valobj_sp) {
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(size_t idx) override
struct NSIndexPathSyntheticFrontEnd::Impl m_impl
~NSIndexPathSyntheticFrontEnd() override=default
CompilerType m_uint_star_type
NSIndexPathSyntheticFrontEnd(lldb::ValueObjectSP valobj_sp)
ObjCLanguageRuntime::ClassDescriptorSP m_descriptor_sp
size_t GetIndexOfChildWithName(ConstString name) override
size_t CalculateNumChildren() 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.
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.
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