21 stream.
Printf(
" Has Value=%s ",
37 GenericOptionalFrontend(
ValueObject &valobj, StdLib stdlib);
50 bool m_has_value =
false;
56GenericOptionalFrontend::GenericOptionalFrontend(
ValueObject &valobj,
59 if (
auto target_sp = m_backend.GetTargetSP()) {
64bool GenericOptionalFrontend::Update() {
65 ValueObjectSP engaged_sp;
67 if (m_stdlib == StdLib::LibCxx)
69 m_backend.GetChildMemberWithName(
ConstString(
"__engaged_"),
true);
70 else if (m_stdlib == StdLib::LibStdcpp)
72 m_backend.GetChildMemberWithName(
ConstString(
"_M_payload"),
true)
73 ->GetChildMemberWithName(
ConstString(
"_M_engaged"),
true);
81 m_has_value = engaged_sp->GetValueAsUnsigned(0) != 0;
86ValueObjectSP GenericOptionalFrontend::GetChildAtIndex(
size_t _idx) {
88 return ValueObjectSP();
92 if (m_stdlib == StdLib::LibCxx)
97 val_sp = m_backend.GetChildMemberWithName(
ConstString(
"__engaged_"),
true)
99 ->GetChildAtIndex(0,
true)
100 ->GetChildMemberWithName(
ConstString(
"__val_"),
true);
101 else if (m_stdlib == StdLib::LibStdcpp) {
102 val_sp = m_backend.GetChildMemberWithName(
ConstString(
"_M_payload"),
true)
103 ->GetChildMemberWithName(
ConstString(
"_M_payload"),
true);
107 ValueObjectSP candidate =
108 val_sp->GetChildMemberWithName(
ConstString(
"_M_value"),
true);
114 return ValueObjectSP();
119 return ValueObjectSP();
128 return new GenericOptionalFrontend(
129 *valobj_sp, GenericOptionalFrontend::StdLib::LibStdcpp);
136 return new GenericOptionalFrontend(*valobj_sp,
137 GenericOptionalFrontend::StdLib::LibCxx);
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.
A stream class that can stream formatted output to a file.
size_t Printf(const char *format,...) __attribute__((format(printf
Output printf formatted output to the stream.
virtual size_t CalculateNumChildren()=0
virtual bool MightHaveChildren()=0
virtual size_t GetIndexOfChildWithName(ConstString name)=0
virtual lldb::ValueObjectSP GetChildAtIndex(size_t idx)=0
size_t GetNumChildren(uint32_t max=UINT32_MAX)
A class that represents a running process on the host machine.