35 :
ValueObject(parent), m_address(), m_dynamic_type_info(),
36 m_use_dynamic(use_dynamic) {
93 return children_count <= max ? children_count : max;
143 bool found_dynamic_type =
false;
163 if (!found_dynamic_type) {
177 if (runtime && found_dynamic_type) {
178 if (class_type_or_name.
HasType()) {
196 if (!found_dynamic_type) {
209 bool has_changed_type =
false;
213 has_changed_type =
true;
218 has_changed_type =
true;
221 if (has_changed_type)
243 if (has_changed_type && log)
245 static_cast<void *
>(
this),
GetTypeName().GetCString());
275 error.SetErrorString(
"unable to read value");
283 error.SetErrorString(
"unable to read value");
292 if (my_value != parent_value) {
294 if (strcmp(value_str,
"0")) {
295 error.SetErrorString(
296 "unable to modify dynamic value, use 'expression' command");
308 error.SetErrorString(
"unable to read value");
316 error.SetErrorString(
"unable to read value");
325 if (my_value != parent_value) {
330 error.SetErrorString(
331 "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
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 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
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
size_t CalculateNumChildren(uint32_t max) override
Should only be called by ValueObject::GetNumChildren().
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.
size_t GetNumChildren(uint32_t max=UINT32_MAX)
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)
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
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 lldb::LanguageType GetObjectRuntimeLanguage()
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.