35 :
ValueObject(parent), m_address(), m_dynamic_type_info(),
36 m_use_dynamic(use_dynamic) {
88llvm::Expected<uint32_t>
95 return children_count;
96 return *children_count <= max ? *children_count : max;
146 bool found_dynamic_type =
false;
155 if (
auto *preferred_runtime =
161 if (found_dynamic_type)
163 runtime = preferred_runtime;
165 if (!found_dynamic_type)
177 if (!found_dynamic_type) {
191 if (runtime && found_dynamic_type) {
192 if (class_type_or_name.
HasType()) {
210 if (!found_dynamic_type) {
223 bool has_changed_type =
false;
227 has_changed_type =
true;
232 has_changed_type =
true;
235 if (has_changed_type)
257 if (has_changed_type && log)
259 static_cast<void *
>(
this),
GetTypeName().GetCString());
289 error.SetErrorString(
"unable to read value");
297 error.SetErrorString(
"unable to read value");
306 if (my_value != parent_value) {
308 if (strcmp(value_str,
"0")) {
309 error.SetErrorString(
310 "unable to modify dynamic value, use 'expression' command");
322 error.SetErrorString(
"unable to read value");
330 error.SetErrorString(
"unable to read value");
339 if (my_value != parent_value) {
344 error.SetErrorString(
345 "unable to modify dynamic value, use 'expression' command");
static llvm::raw_ostream & error(Stream &strm)
#define LLDB_LOGF(log,...)
A section + offset based address class.
lldb::addr_t GetLoadAddress(Target *target) const
Get the load address.
bool IsValid() const
Check if the object state is valid.
uint32_t GetAddressByteSize() const
Returns the size in bytes of an address of the current architecture.
lldb::ByteOrder GetByteOrder() const
Returns the byte order for the architecture specification.
Generic representation of a type in a programming language.
ConstString GetDisplayTypeName() const
llvm::Expected< uint32_t > GetNumChildren(bool omit_empty_base_classes, const ExecutionContext *exe_ctx) const
A uniqued constant string class.
A class that describes the declaration location of a lldb object.
"lldb/Target/ExecutionContext.h" A class that contains an execution context.
Target * GetTargetPtr() const
Returns a pointer to the target object.
Process * GetProcessPtr() const
Returns a pointer to the process object.
virtual TypeAndOrName FixUpDynamicType(const TypeAndOrName &type_and_or_name, ValueObject &static_value)=0
virtual LanguageRuntime * GetPreferredLanguageRuntime(ValueObject &in_value)
Return the preferred language runtime instance, which in most cases will be the current instance.
virtual bool GetDynamicTypeAndAddress(ValueObject &in_value, lldb::DynamicValueType use_dynamic, TypeAndOrName &class_type_or_name, Address &address, Value::ValueType &value_type)=0
A plug-in interface definition class for debugging a process.
LanguageRuntime * GetLanguageRuntime(lldb::LanguageType language)
void Clear()
Clear the object state.
bool Fail() const
Test for error condition.
void SetErrorString(llvm::StringRef err_str)
Set the current error string to err_str.
bool Success() const
Test for success condition.
const ArchSpec & GetArchitecture() const
Sometimes you can find the name of the type corresponding to an object, but we don't have debug infor...
CompilerType GetCompilerType() const
ConstString GetName() const
bool UpdateValue() override
bool IsSyntheticChildrenGenerated() override
llvm::Expected< uint32_t > CalculateNumChildren(uint32_t max) override
Should only be called by ValueObject::GetNumChildren().
lldb::ValueType GetValueType() const override
lldb::LanguageType GetPreferredDisplayLanguage() override
TypeImpl GetTypeImpl() override
void SetLanguageFlags(uint64_t flags) override
CompilerType GetCompilerTypeImpl() override
uint64_t GetLanguageFlags() override
bool IsInScope() override
ConstString GetQualifiedTypeName() override
void SetSyntheticChildrenGenerated(bool b) override
void SetPreferredDisplayLanguage(lldb::LanguageType)
ValueObjectDynamicValue(ValueObject &parent, lldb::DynamicValueType use_dynamic)
lldb::DynamicValueType m_use_dynamic
TypeAndOrName m_dynamic_type_info
bool SetData(DataExtractor &data, Status &error) override
bool GetDeclaration(Declaration &decl) override
bool SetValueFromCString(const char *value_str, Status &error) override
std::optional< uint64_t > GetByteSize() override
ConstString GetDisplayTypeName() override
Address m_address
The variable that this value object is based upon.
ConstString GetTypeName() override
void SetValueIsValid(bool valid)
EvaluationPoint m_update_point
Stores both the stop id and the full context at which this value was last updated.
CompilerType GetCompilerType()
void SetPreferredDisplayLanguage(lldb::LanguageType lt)
virtual void SetLanguageFlags(uint64_t flags)
Status m_error
An error object that can describe any errors that occur when updating values.
virtual uint64_t GetLanguageFlags()
virtual void SetSyntheticChildrenGenerated(bool b)
virtual std::optional< uint64_t > GetByteSize()=0
DataExtractor m_data
A data extractor that can be used to extract the value.
virtual uint64_t GetValueAsUnsigned(uint64_t fail_value, bool *success=nullptr)
llvm::Expected< uint32_t > GetNumChildren(uint32_t max=UINT32_MAX)
virtual lldb::ValueType GetValueType() const =0
virtual ConstString GetTypeName()
void SetValueDidChange(bool value_changed)
virtual lldb::ModuleSP GetModule()
Return the module associated with this value object in case the value is from an executable file and ...
virtual ConstString GetDisplayTypeName()
lldb::LanguageType m_preferred_display_language
lldb::LanguageType GetObjectRuntimeLanguage()
ValueObject * m_parent
The parent value object, or nullptr if this has no parent.
virtual bool GetDeclaration(Declaration &decl)
virtual bool IsSyntheticChildrenGenerated()
bool UpdateValueIfNeeded(bool update_format=true)
void SetName(ConstString name)
Change the name of the current ValueObject.
const Status & GetError()
lldb::TargetSP GetTargetSP() const
ConstString GetName() const
virtual bool SetValueFromCString(const char *value_str, Status &error)
virtual ConstString GetQualifiedTypeName()
virtual bool SetData(DataExtractor &data, Status &error)
virtual TypeImpl GetTypeImpl()
void ClearDynamicTypeInformation()
const ExecutionContextRef & GetExecutionContextRef() const
virtual bool CanProvideValue()
virtual lldb::LanguageType GetPreferredDisplayLanguage()
const Scalar & GetScalar() const
Status GetValueAsData(ExecutionContext *exe_ctx, DataExtractor &data, Module *module)
ValueType
Type that describes Value::m_value.
ValueType GetValueType() const
void SetCompilerType(const CompilerType &compiler_type)
uint64_t GetValueByteSize(Status *error_ptr, ExecutionContext *exe_ctx)
void SetValueType(ValueType value_type)
const CompilerType & GetCompilerType()
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
LanguageType
Programming language type.
@ eLanguageTypeUnknown
Unknown or invalid language value.
@ eLanguageTypeC
Non-standardized C, such as K&R.
@ eLanguageTypeObjC
Objective-C.
@ eLanguageTypeC_plus_plus
ISO C++:1998.
std::shared_ptr< lldb_private::Target > TargetSP