Lines Matching defs:ValueObject
1 //===-- ValueObject.cpp ---------------------------------------------------===//
9 #include "lldb/Core/ValueObject.h"
67 #include <lldb/Core/ValueObject.h>
81 // ValueObject constructor
82 ValueObject::ValueObject(ValueObject &parent)
92 // ValueObject constructor
93 ValueObject::ValueObject(ExecutionContextScope *exe_scope,
111 ValueObject::~ValueObject() = default;
113 bool ValueObject::UpdateValueIfNeeded(bool update_format) {
204 bool ValueObject::UpdateFormatsIfNeeded() {
207 "[%s %p] checking for FormatManager revisions. ValueObject "
229 void ValueObject::SetNeedsUpdate() {
236 void ValueObject::ClearDynamicTypeInformation() {
246 CompilerType ValueObject::MaybeCalculateCompleteType() {
278 DataExtractor &ValueObject::GetDataExtractor() {
283 const Status &ValueObject::GetError() {
288 const char *ValueObject::GetLocationAsCStringImpl(const Value &value,
332 bool ValueObject::ResolveValue(Scalar &scalar) {
350 bool ValueObject::IsLogicalTrue(Status &error) {
375 ValueObjectSP ValueObject::GetChildAtIndex(uint32_t idx, bool can_create) {
388 ValueObject *child = m_children.GetChildAtIndex(idx);
396 ValueObject::GetChildAtNamePath(llvm::ArrayRef<llvm::StringRef> names) {
409 size_t ValueObject::GetIndexOfChildWithName(llvm::StringRef name) {
415 ValueObjectSP ValueObject::GetChildMemberWithName(llvm::StringRef name,
443 llvm::Expected<uint32_t> ValueObject::GetNumChildren(uint32_t max) {
464 uint32_t ValueObject::GetNumChildrenIgnoringErrors(uint32_t max) {
473 bool ValueObject::MightHaveChildren() {
485 // Should only be called by ValueObject::GetNumChildren()
486 void ValueObject::SetNumChildren(uint32_t num_children) {
491 ValueObject *ValueObject::CreateChildAtIndex(size_t idx) {
526 ValueObject *ValueObject::CreateSyntheticArrayMember(size_t idx) {
564 // In case of an incomplete type, try to use the ValueObject's
565 // synthetic value to create the child ValueObject.
572 bool ValueObject::GetSummaryAsCString(TypeSummaryImpl *summary_ptr,
579 bool ValueObject::GetSummaryAsCString(TypeSummaryImpl *summary_ptr,
624 const char *ValueObject::GetSummaryAsCString(lldb::LanguageType lang) {
636 bool ValueObject::GetSummaryAsCString(std::string &destination,
641 bool ValueObject::IsCStringContainer(bool check_pointer) {
658 size_t ValueObject::GetPointeeData(DataExtractor &data, uint32_t item_idx,
760 uint64_t ValueObject::GetData(DataExtractor &data, Status &error) {
778 bool ValueObject::SetData(DataExtractor &data, Status &error) {
855 ValueObject::ReadPointedString(lldb::WritableDataBufferSP &buffer_sp,
992 llvm::Expected<std::string> ValueObject::GetObjectDescription() {
1034 bool ValueObject::GetValueAsCString(const lldb_private::TypeFormatImpl &format,
1042 bool ValueObject::GetValueAsCString(lldb::Format format,
1047 const char *ValueObject::GetValueAsCString() {
1088 uint64_t ValueObject::GetValueAsUnsigned(uint64_t fail_value, bool *success) {
1106 int64_t ValueObject::GetValueAsSigned(int64_t fail_value, bool *success) {
1124 llvm::Expected<llvm::APSInt> ValueObject::GetValueAsAPSInt() {
1146 llvm::Expected<llvm::APFloat> ValueObject::GetValueAsAPFloat() {
1162 llvm::Expected<bool> ValueObject::GetValueAsBool() {
1182 void ValueObject::SetValueFromInteger(const llvm::APInt &value, Status &error) {
1218 void ValueObject::SetValueFromInteger(lldb::ValueObjectSP new_val_sp,
1272 // ValueObject::DumpPrintableRepresentation() please keep this call up to date
1275 bool ValueObject::HasSpecialPrintableRepresentation(
1279 val_obj_display == ValueObject::eValueObjectRepresentationStyleValue) {
1308 bool ValueObject::DumpPrintableRepresentation(
1313 // If the ValueObject has an error, we might end up dumping the type, which
1325 (special == ValueObject::PrintableRepresentationSpecialCases::eAllow);
1330 val_obj_display == ValueObject::eValueObjectRepresentationStyleValue) {
1385 s, ValueObject::eValueObjectRepresentationStyleValue,
1426 s, ValueObject::eValueObjectRepresentationStyleValue, format);
1565 addr_t ValueObject::GetAddressOf(bool scalar_is_load_address,
1602 addr_t ValueObject::GetPointerValue(AddressType *address_type) {
1631 bool ValueObject::SetValueFromCString(const char *value_str, Status &error) {
1716 bool ValueObject::GetDeclaration(Declaration &decl) {
1721 void ValueObject::AddSyntheticChild(ConstString key,
1722 ValueObject *valobj) {
1726 ValueObjectSP ValueObject::GetSyntheticChild(ConstString key) const {
1728 std::map<ConstString, ValueObject *>::const_iterator pos =
1735 bool ValueObject::IsPossibleDynamicType() {
1744 bool ValueObject::IsRuntimeSupportValue() {
1761 bool ValueObject::IsNilReference() {
1768 bool ValueObject::IsUninitializedReference() {
1784 ValueObjectSP ValueObject::GetSyntheticArrayMember(size_t index,
1794 ValueObject *synthetic_child;
1811 ValueObjectSP ValueObject::GetSyntheticBitFieldChild(uint32_t from, uint32_t to,
1845 ValueObjectSP ValueObject::GetSyntheticChildAtOffset(
1882 ValueObjectSP ValueObject::GetSyntheticBase(uint32_t offset,
1938 ValueObject::GetSyntheticExpressionPathChild(const char *expression,
1966 void ValueObject::CalculateSyntheticValue() {
1987 void ValueObject::CalculateDynamicValue(DynamicValueType use_dynamic) {
2001 ValueObjectSP ValueObject::GetDynamicValue(DynamicValueType use_dynamic) {
2014 ValueObjectSP ValueObject::GetSyntheticValue() {
2023 bool ValueObject::HasSyntheticValue() {
2034 ValueObject *ValueObject::GetNonBaseClassParent() {
2044 bool ValueObject::IsBaseClass(uint32_t &depth) {
2059 void ValueObject::GetExpressionPath(Stream &s,
2105 ValueObject *parent = GetParent();
2119 ValueObject *non_base_class_parent = GetNonBaseClassParent();
2154 ValueObjectSP ValueObject::GetValueForExpressionPath(
2161 ValueObject::eExpressionPathScanEndReasonUnknown;
2163 ValueObject::eExpressionPathEndResultTypeInvalid;
2165 ValueObject::eExpressionPathAftermathNothing;
2174 *final_task_on_target == ValueObject::eExpressionPathAftermathNothing)
2184 ValueObject::eExpressionPathAftermathDereference) {
2190 ValueObject::eExpressionPathScanEndReasonDereferencingFailed;
2192 *final_value_type = ValueObject::eExpressionPathEndResultTypeInvalid;
2196 *final_task_on_target = ValueObject::eExpressionPathAftermathNothing;
2201 ValueObject::eExpressionPathAftermathTakeAddress) {
2207 ValueObject::eExpressionPathScanEndReasonTakingAddressFailed;
2209 *final_value_type = ValueObject::eExpressionPathEndResultTypeInvalid;
2213 *final_task_on_target = ValueObject::eExpressionPathAftermathNothing;
2222 ValueObjectSP ValueObject::GetValueForExpressionPath_Impl(
2247 *reason_to_stop = ValueObject::eExpressionPathScanEndReasonEndOfString;
2261 ValueObject::eExpressionPathScanEndReasonArrowInsteadOfDot;
2262 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2271 ValueObject::eExpressionPathScanEndReasonFragileIVarNotAllowed;
2272 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2277 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
2278 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2293 ValueObject::eExpressionPathScanEndReasonDotInsteadOfArrow;
2294 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2310 ValueObject::eExpressionPathScanEndReasonEndOfString;
2311 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2359 ValueObject::eExpressionPathScanEndReasonEndOfString;
2360 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2364 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2365 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2379 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2428 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2432 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2433 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2453 ValueObject::eExpressionPathScanEndReasonRangeOperatorInvalid;
2454 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2462 ValueObject::eExpressionPathScanEndReasonRangeOperatorNotAllowed;
2463 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2472 ValueObject::eExpressionPathScanEndReasonEmptyRangeNotAllowed;
2473 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2479 ValueObject::eExpressionPathScanEndReasonArrayRangeOperatorMet;
2481 ValueObject::eExpressionPathEndResultTypeUnboundedRange;
2491 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
2492 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2510 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
2511 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2531 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2535 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2536 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2541 ValueObject::
2556 ValueObject::eExpressionPathScanEndReasonDereferencingFailed;
2557 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2579 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2580 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2585 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2593 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2594 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2599 *reason_to_stop = ValueObject::
2601 *final_result = ValueObject::eExpressionPathEndResultTypeBitfield;
2608 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2609 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2614 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2627 ValueObject::eExpressionPathScanEndReasonSyntheticValueMissing;
2628 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2636 ValueObject::eExpressionPathScanEndReasonSyntheticValueMissing;
2637 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2643 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2644 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2649 *final_result = ValueObject::eExpressionPathEndResultTypePlain;
2654 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2655 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2666 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
2667 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2680 ValueObject::eExpressionPathScanEndReasonNoSuchChild;
2681 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2684 *reason_to_stop = ValueObject::
2686 *final_result = ValueObject::eExpressionPathEndResultTypeBitfield;
2695 ValueObject::eExpressionPathAftermathDereference &&
2701 ValueObject::eExpressionPathScanEndReasonDereferencingFailed;
2702 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2705 *what_next = ValueObject::eExpressionPathAftermathNothing;
2710 ValueObject::eExpressionPathScanEndReasonArrayRangeOperatorMet;
2711 *final_result = ValueObject::eExpressionPathEndResultTypeBoundedRange;
2720 ValueObject::eExpressionPathScanEndReasonUnexpectedSymbol;
2721 *final_result = ValueObject::eExpressionPathEndResultTypeInvalid;
2728 llvm::Error ValueObject::Dump(Stream &s) {
2732 llvm::Error ValueObject::Dump(Stream &s,
2738 ValueObjectSP ValueObject::CreateConstantValue(ConstString name) {
2767 ValueObjectSP ValueObject::GetQualifiedRepresentationIfAvailable(
2798 ValueObjectSP ValueObject::Dereference(Status &error) {
2894 ValueObjectSP ValueObject::AddressOf(Status &error) {
2937 ValueObjectSP ValueObject::DoCast(const CompilerType &compiler_type) {
2941 ValueObjectSP ValueObject::Cast(const CompilerType &compiler_type) {
2950 // You have to check the ValueObject's Value for the address types, since
2953 // FIXME: Can we make ValueObject's with a live address fetch "more data" from
2975 lldb::ValueObjectSP ValueObject::Clone(ConstString new_name) {
2979 ValueObjectSP ValueObject::CastPointerType(const char *name,
2994 ValueObjectSP ValueObject::CastPointerType(const char *name, TypeSP &type_sp) {
3008 lldb::addr_t ValueObject::GetLoadAddress() {
3030 llvm::Expected<lldb::ValueObjectSP> ValueObject::CastDerivedToBaseType(
3034 // (unchanged) ValueObject.
3087 return ValueObject::CreateValueObjectFromAddress(name, addr, exe_ctx, type,
3101 ValueObject::CastBaseToDerivedType(CompilerType type, uint64_t offset) {
3104 // (unchanged) ValueObject.
3153 lldb::ValueObjectSP value = ValueObject::CreateValueObjectFromAddress(
3165 lldb::ValueObjectSP ValueObject::CastToBasicType(CompilerType type) {
3205 return ValueObject::CreateValueObjectFromBool(
3210 return ValueObject::CreateValueObjectFromBool(
3229 return ValueObject::CreateValueObjectFromAPInt(target, ext, type,
3255 return ValueObject::CreateValueObjectFromAPInt(target, integer, type,
3270 return ValueObject::CreateValueObjectFromAPFloat(target, f, type,
3285 return ValueObject::CreateValueObjectFromAPFloat(target, f, type,
3300 return ValueObject::CreateValueObjectFromAPFloat(target, f, type,
3316 lldb::ValueObjectSP ValueObject::CastToEnumType(CompilerType type) {
3352 return ValueObject::CreateValueObjectFromAPInt(target, integer, type,
3363 return ValueObject::CreateValueObjectFromAPInt(target, ext, type,
3376 ValueObject::EvaluationPoint::EvaluationPoint() : m_mod_id(), m_exe_ctx_ref() {}
3378 ValueObject::EvaluationPoint::EvaluationPoint(ExecutionContextScope *exe_scope,
3415 ValueObject::EvaluationPoint::EvaluationPoint(
3416 const ValueObject::EvaluationPoint &rhs)
3419 ValueObject::EvaluationPoint::~EvaluationPoint() = default;
3429 bool ValueObject::EvaluationPoint::SyncWithProcessState(
3496 void ValueObject::EvaluationPoint::SetUpdated() {
3503 void ValueObject::ClearUserVisibleData(uint32_t clear_mask) {
3527 SymbolContextScope *ValueObject::GetSymbolContextScope() {
3536 ValueObject::CreateValueObjectFromExpression(llvm::StringRef name,
3543 lldb::ValueObjectSP ValueObject::CreateValueObjectFromExpression(
3559 lldb::ValueObjectSP ValueObject::CreateValueObjectFromAddress(
3589 lldb::ValueObjectSP ValueObject::CreateValueObjectFromData(
3603 ValueObject::CreateValueObjectFromAPInt(lldb::TargetSP target,
3613 return ValueObject::CreateValueObjectFromData(name, *data_sp, exe_ctx, type);
3616 lldb::ValueObjectSP ValueObject::CreateValueObjectFromAPFloat(
3623 ValueObject::CreateValueObjectFromBool(lldb::TargetSP target, bool value,
3641 return ValueObject::CreateValueObjectFromData(name, *data_sp, exe_ctx,
3645 lldb::ValueObjectSP ValueObject::CreateValueObjectFromNullptr(
3659 return ValueObject::CreateValueObjectFromData(name, *data_sp, exe_ctx, type);
3662 ModuleSP ValueObject::GetModule() {
3663 ValueObject *root(GetRoot());
3669 ValueObject *ValueObject::GetRoot() {
3672 return (m_root = FollowParentChain([](ValueObject *vo) -> bool {
3677 ValueObject *
3678 ValueObject::FollowParentChain(std::function<bool(ValueObject *)> f) {
3679 ValueObject *vo = this;
3688 AddressType ValueObject::GetAddressTypeOfChildren() {
3690 ValueObject *root(GetRoot());
3697 lldb::DynamicValueType ValueObject::GetDynamicValueType() {
3698 ValueObject *with_dv_info = this;
3707 lldb::Format ValueObject::GetFormat() const {
3708 const ValueObject *with_fmt_info = this;
3717 lldb::LanguageType ValueObject::GetPreferredDisplayLanguage() {
3736 void ValueObject::SetPreferredDisplayLanguageIfNeeded(lldb::LanguageType lt) {
3741 bool ValueObject::CanProvideValue() {
3751 ValueObjectSP ValueObject::Persist() {
3779 lldb::ValueObjectSP ValueObject::GetVTable() {