std::string StringSummaryFormat::FormatObject(lldb::ValueObjectSP object) { if (!object.get()) return "NULL"; StreamString s; ExecutionContext exe_ctx; object->GetExecutionContextScope()->CalculateExecutionContext(exe_ctx); SymbolContext sc; StackFrame *frame = exe_ctx.GetFramePtr(); if (frame) sc = frame->GetSymbolContext(lldb::eSymbolContextEverything); if (m_show_members_oneliner) { ValueObjectSP synth_valobj = object->GetSyntheticValue(lldb::eUseSyntheticFilter); const uint32_t num_children = synth_valobj->GetNumChildren(); if (num_children) { s.PutChar('('); for (uint32_t idx=0; idx<num_children; ++idx) { lldb::ValueObjectSP child_sp(synth_valobj->GetChildAtIndex(idx, true)); if (child_sp.get()) { if (idx) s.PutCString(", "); s.PutCString(child_sp.get()->GetName().AsCString()); s.PutChar('='); child_sp.get()->GetPrintableRepresentation(s); } } s.PutChar(')'); return s.GetString(); } else return ""; } else { if (Debugger::FormatPrompt(m_format.c_str(), &sc, &exe_ctx, &sc.line_entry.range.GetBaseAddress(), s, NULL, object.get())) return s.GetString(); else return ""; } }