199451b44SJordan Rupprechtimport lldb 299451b44SJordan Rupprecht 3*2238dcc3SJonas Devlieghere 499451b44SJordan Rupprechtdef foo_SummaryProvider(valobj, dict): 5*2238dcc3SJonas Devlieghere a = valobj.GetChildMemberWithName("a") 6*2238dcc3SJonas Devlieghere a_ptr = valobj.GetChildMemberWithName("a_ptr") 7*2238dcc3SJonas Devlieghere bar = valobj.GetChildMemberWithName("b") 8*2238dcc3SJonas Devlieghere i = bar.GetChildMemberWithName("i") 9*2238dcc3SJonas Devlieghere i_ptr = bar.GetChildMemberWithName("i_ptr") 10*2238dcc3SJonas Devlieghere b_ref = bar.GetChildMemberWithName("b_ref") 1199451b44SJordan Rupprecht b_ref_ptr = b_ref.AddressOf() 1299451b44SJordan Rupprecht b_ref = b_ref_ptr.Dereference() 13*2238dcc3SJonas Devlieghere h = b_ref.GetChildMemberWithName("h") 14*2238dcc3SJonas Devlieghere k = b_ref.GetChildMemberWithName("k") 15*2238dcc3SJonas Devlieghere return ( 16*2238dcc3SJonas Devlieghere "a = " 17*2238dcc3SJonas Devlieghere + str(a.GetValueAsUnsigned(0)) 18*2238dcc3SJonas Devlieghere + ", a_ptr = " 19*2238dcc3SJonas Devlieghere + str(a_ptr.GetValueAsUnsigned(0)) 20*2238dcc3SJonas Devlieghere + " -> " 21*2238dcc3SJonas Devlieghere + str(a_ptr.Dereference().GetValueAsUnsigned(0)) 22*2238dcc3SJonas Devlieghere + ", i = " 23*2238dcc3SJonas Devlieghere + str(i.GetValueAsUnsigned(0)) 24*2238dcc3SJonas Devlieghere + ", i_ptr = " 25*2238dcc3SJonas Devlieghere + str(i_ptr.GetValueAsUnsigned(0)) 26*2238dcc3SJonas Devlieghere + " -> " 27*2238dcc3SJonas Devlieghere + str(i_ptr.Dereference().GetValueAsUnsigned(0)) 28*2238dcc3SJonas Devlieghere + ", b_ref = " 29*2238dcc3SJonas Devlieghere + str(b_ref.GetValueAsUnsigned(0)) 30*2238dcc3SJonas Devlieghere + ", h = " 31*2238dcc3SJonas Devlieghere + str(h.GetValueAsUnsigned(0)) 32*2238dcc3SJonas Devlieghere + " , k = " 33*2238dcc3SJonas Devlieghere + str(k.GetValueAsUnsigned(0)) 34*2238dcc3SJonas Devlieghere ) 35*2238dcc3SJonas Devlieghere 3699451b44SJordan Rupprecht 3799451b44SJordan Rupprechtdef foo_SummaryProvider3(valobj, dict, options): 3899451b44SJordan Rupprecht if not isinstance(options, lldb.SBTypeSummaryOptions): 3999451b44SJordan Rupprecht raise Exception() 4099451b44SJordan Rupprecht return foo_SummaryProvider(valobj, dict) + ", WITH_OPTS" 41