27 bool need_add_dot =
true;
28 if (path[0] ==
'.' || (path[0] ==
'-' && path[1] ==
'>') || path[0] ==
'[')
38 const std::string &path) {
41 bool need_add_dot =
true;
42 if (path[0] ==
'.' || (path[0] ==
'-' && path[1] ==
'>') || path[0] ==
'[')
59 if (*expr_cstr ==
'.')
61 else if (*expr_cstr ==
'-' && *(expr_cstr + 1) ==
'>')
65 if (!::strcmp(name_cstr, expr_cstr))
79 for (
size_t i = 0; i <
GetCount(); i++) {
92 m_description.c_str());
98 llvm::StringRef name, llvm::StringRef expression,
100 ValueObjectSP valobj_sp(
103 valobj_sp->SetSyntheticChildrenGenerated(
true);
110 ValueObjectSP valobj_sp(
113 valobj_sp->SetSyntheticChildrenGenerated(
true);
120 ValueObjectSP valobj_sp(
123 valobj_sp->SetSyntheticChildrenGenerated(
true);
130 m_wrapper_sp(), m_interpreter(nullptr) {
139 m_interpreter = target_sp->GetDebugger().GetScriptInterpreter();
150 if (!m_wrapper_sp || !m_interpreter)
151 return lldb::ValueObjectSP();
153 return m_interpreter->GetChildAtIndex(m_wrapper_sp, idx);
157 return (m_wrapper_sp && m_wrapper_sp->IsValid() && m_interpreter);
161 if (!m_wrapper_sp || m_interpreter ==
nullptr)
163 return m_interpreter->CalculateNumChildren(m_wrapper_sp,
UINT32_MAX);
167 if (!m_wrapper_sp || m_interpreter ==
nullptr)
169 return m_interpreter->CalculateNumChildren(m_wrapper_sp, max);
173 if (!m_wrapper_sp || m_interpreter ==
nullptr)
176 return m_interpreter->UpdateSynthProviderInstance(m_wrapper_sp);
180 if (!m_wrapper_sp || m_interpreter ==
nullptr)
183 return m_interpreter->MightHaveChildrenSynthProviderInstance(m_wrapper_sp);
188 if (!m_wrapper_sp || m_interpreter ==
nullptr)
190 return m_interpreter->GetIndexOfChildWithName(m_wrapper_sp,
195 if (!m_wrapper_sp || m_interpreter ==
nullptr)
198 return m_interpreter->GetSyntheticValue(m_wrapper_sp);
202 if (!m_wrapper_sp || m_interpreter ==
nullptr)
205 return m_interpreter->GetSyntheticTypeName(m_wrapper_sp);
210 sstr.
Printf(
"%s%s%s Python class %s",
Cascades() ?
"" :
" (not cascading)",
std::string GetDescription() override
Generic representation of a type in a programming language.
A uniqued constant string class.
const char * GetCString() const
Get the string value as a C string.
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
virtual StructuredData::ObjectSP CreateSyntheticScriptedProvider(const char *class_name, lldb::ValueObjectSP valobj)
std::string m_python_class
ScriptInterpreter * m_interpreter
lldb::ValueObjectSP GetChildAtIndex(size_t idx) override
FrontEnd(std::string pclass, ValueObject &backend)
lldb::ValueObjectSP GetSyntheticValue() override
size_t GetIndexOfChildWithName(ConstString name) override
ConstString GetSyntheticTypeName() override
StructuredData::ObjectSP m_wrapper_sp
size_t CalculateNumChildren() override
bool MightHaveChildren() override
std::string GetDescription() override
std::string m_python_class
llvm::StringRef GetString() const
size_t Printf(const char *format,...) __attribute__((format(printf
Output printf formatted output to the stream.
lldb::ValueObjectSP CreateValueObjectFromExpression(llvm::StringRef name, llvm::StringRef expression, const ExecutionContext &exe_ctx)
lldb::ValueObjectSP CreateValueObjectFromData(llvm::StringRef name, const DataExtractor &data, const ExecutionContext &exe_ctx, CompilerType type)
lldb::ValueObjectSP CreateValueObjectFromAddress(llvm::StringRef name, uint64_t address, const ExecutionContext &exe_ctx, CompilerType type)
bool SkipsPointers() const
bool SkipsReferences() const
size_t GetIndexOfChildWithName(ConstString name) override
bool SetExpressionPathAtIndex(size_t i, const char *path)
const char * GetExpressionPathAtIndex(size_t i) const
void AddExpressionPath(const char *path)
std::string GetDescription() override
std::vector< std::string > m_expression_paths
static lldb::ValueObjectSP CreateValueObjectFromExpression(llvm::StringRef name, llvm::StringRef expression, const ExecutionContext &exe_ctx)
lldb::ValueObjectSP GetSP()
lldb::user_id_t GetID() const
Returns a unique id for this ValueObject.
static lldb::ValueObjectSP CreateValueObjectFromData(llvm::StringRef name, const DataExtractor &data, const ExecutionContext &exe_ctx, CompilerType type)
lldb::TargetSP GetTargetSP() const
static lldb::ValueObjectSP CreateValueObjectFromAddress(llvm::StringRef name, uint64_t address, const ExecutionContext &exe_ctx, CompilerType type)
A class that represents a running process on the host machine.