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() {
67 if (m_stdlib == StdLib::LibCxx)
68 engaged_sp = m_backend.GetChildMemberWithName(
"__engaged_");
69 else if (m_stdlib == StdLib::LibStdcpp)
70 engaged_sp = m_backend.GetChildMemberWithName(
"_M_payload")
71 ->GetChildMemberWithName(
"_M_engaged");
79 m_has_value = engaged_sp->GetValueAsUnsigned(0) != 0;
84ValueObjectSP GenericOptionalFrontend::GetChildAtIndex(
size_t _idx) {
90 if (m_stdlib == StdLib::LibCxx)
95 val_sp = m_backend.GetChildMemberWithName(
"__engaged_")
98 ->GetChildMemberWithName(
"__val_");
99 else if (m_stdlib == StdLib::LibStdcpp) {
100 val_sp = m_backend.GetChildMemberWithName(
"_M_payload")
101 ->GetChildMemberWithName(
"_M_payload");
105 ValueObjectSP candidate = val_sp->GetChildMemberWithName(
"_M_value");
125 return new GenericOptionalFrontend(
126 *valobj_sp, GenericOptionalFrontend::StdLib::LibStdcpp);
133 return new GenericOptionalFrontend(*valobj_sp,
134 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.
std::shared_ptr< lldb_private::ValueObject > ValueObjectSP