| 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" |