1import lldb 2 3 4def foo_SummaryProvider(valobj, dict): 5 a = valobj.GetChildMemberWithName("a") 6 a_ptr = valobj.GetChildMemberWithName("a_ptr") 7 bar = valobj.GetChildMemberWithName("b") 8 i = bar.GetChildMemberWithName("i") 9 i_ptr = bar.GetChildMemberWithName("i_ptr") 10 b_ref = bar.GetChildMemberWithName("b_ref") 11 b_ref_ptr = b_ref.AddressOf() 12 b_ref = b_ref_ptr.Dereference() 13 h = b_ref.GetChildMemberWithName("h") 14 k = b_ref.GetChildMemberWithName("k") 15 return ( 16 "a = " 17 + str(a.GetValueAsUnsigned(0)) 18 + ", a_ptr = " 19 + str(a_ptr.GetValueAsUnsigned(0)) 20 + " -> " 21 + str(a_ptr.Dereference().GetValueAsUnsigned(0)) 22 + ", i = " 23 + str(i.GetValueAsUnsigned(0)) 24 + ", i_ptr = " 25 + str(i_ptr.GetValueAsUnsigned(0)) 26 + " -> " 27 + str(i_ptr.Dereference().GetValueAsUnsigned(0)) 28 + ", b_ref = " 29 + str(b_ref.GetValueAsUnsigned(0)) 30 + ", h = " 31 + str(h.GetValueAsUnsigned(0)) 32 + " , k = " 33 + str(k.GetValueAsUnsigned(0)) 34 ) 35 36 37def foo_SummaryProvider3(valobj, dict, options): 38 if not isinstance(options, lldb.SBTypeSummaryOptions): 39 raise Exception() 40 return foo_SummaryProvider(valobj, dict) + ", WITH_OPTS" 41