import lldb def foo_SummaryProvider(valobj, dict): a = valobj.GetChildMemberWithName("a") a_ptr = valobj.GetChildMemberWithName("a_ptr") bar = valobj.GetChildMemberWithName("b") i = bar.GetChildMemberWithName("i") i_ptr = bar.GetChildMemberWithName("i_ptr") b_ref = bar.GetChildMemberWithName("b_ref") b_ref_ptr = b_ref.AddressOf() b_ref = b_ref_ptr.Dereference() h = b_ref.GetChildMemberWithName("h") k = b_ref.GetChildMemberWithName("k") return ( "a = " + str(a.GetValueAsUnsigned(0)) + ", a_ptr = " + str(a_ptr.GetValueAsUnsigned(0)) + " -> " + str(a_ptr.Dereference().GetValueAsUnsigned(0)) + ", i = " + str(i.GetValueAsUnsigned(0)) + ", i_ptr = " + str(i_ptr.GetValueAsUnsigned(0)) + " -> " + str(i_ptr.Dereference().GetValueAsUnsigned(0)) + ", b_ref = " + str(b_ref.GetValueAsUnsigned(0)) + ", h = " + str(h.GetValueAsUnsigned(0)) + " , k = " + str(k.GetValueAsUnsigned(0)) ) def foo_SummaryProvider3(valobj, dict, options): if not isinstance(options, lldb.SBTypeSummaryOptions): raise Exception() return foo_SummaryProvider(valobj, dict) + ", WITH_OPTS"