27 if (valobj_sp->GetNumChildren() != 1)
29 ValueObjectSP ptr_sp(valobj_sp->GetChildAtIndex(0,
true));
32 if (!ptr_sp->GetCompilerType().IsPointerType())
39 lldb::TargetSP target_sp = frame_ptr_sp->GetTargetSP();
40 lldb::ProcessSP process_sp = frame_ptr_sp->GetProcessSP();
41 auto ptr_size = process_sp->GetAddressByteSize();
44 lldb::addr_t frame_ptr_addr = frame_ptr_sp->GetPointerValue(&addr_type);
52 auto destroy_func_ptr_addr = frame_ptr_addr + ptr_size;
54 process_sp->ReadPointerFromMemory(destroy_func_ptr_addr,
error);
59 if (!target_sp->ResolveLoadAddress(destroy_func_addr, destroy_func_address))
76 auto promise_var = variable_list->FindVariable(
ConstString(
"__promise"));
79 if (!promise_var->IsArtificial())
82 Type *promise_type = promise_var->GetType();
92 void_type, &void_type, 1,
103 {
"promise", promise_type}});
105 return coro_abi_type;
114 if (!ptr_sp->GetValueAsUnsigned(0)) {
117 stream.
Printf(
"coro frame = 0x%" PRIx64, ptr_sp->GetValueAsUnsigned(0));
138 return m_frame_ptr_sp->GetNumChildren();
144 return lldb::ValueObjectSP();
146 return m_frame_ptr_sp->GetChildAtIndex(idx,
true);
151 m_frame_ptr_sp.reset();
153 ValueObjectSP valobj_sp = m_backend.GetSP();
163 valobj_sp->GetCompilerType().GetTypeTemplateArgument(0));
168 auto ts = valobj_sp->GetCompilerType().GetTypeSystem();
176 promise_type = m_ast_importer->CopyType(*ast_ctx, inferred_type);