1""" 2Fuzz tests an object after the default construction to make sure it does not crash lldb. 3""" 4 5import sys 6import lldb 7 8def fuzz_obj(obj): 9 obj.GetError() 10 obj.GetID() 11 obj.GetName() 12 obj.GetTypeName() 13 obj.GetByteSize() 14 obj.IsInScope() 15 obj.GetFormat() 16 obj.SetFormat(lldb.eFormatBoolean) 17 obj.GetValue() 18 obj.GetValueType() 19 obj.GetValueDidChange() 20 obj.GetSummary() 21 obj.GetObjectDescription() 22 obj.GetLocation() 23 obj.SetValueFromCString("my_new_value") 24 obj.GetChildAtIndex(1) 25 obj.GetChildAtIndex(2, lldb.eNoDynamicValues, False) 26 obj.GetIndexOfChildWithName("my_first_child") 27 obj.GetChildMemberWithName("my_first_child") 28 obj.GetChildMemberWithName("my_first_child", lldb.eNoDynamicValues) 29 obj.GetNumChildren() 30 obj.GetOpaqueType() 31 obj.Dereference() 32 obj.TypeIsPointerType() 33 stream = lldb.SBStream() 34 obj.GetDescription(stream) 35 obj.GetExpressionPath(stream) 36 obj.GetExpressionPath(stream, True) 37 error = lldb.SBError() 38 obj.Watch(True, True, False, error) 39 obj.WatchPointee(True, False, True, error) 40 for child_val in obj: 41 print child_val 42 error = lldb.SBError() 43 obj.GetValueAsSigned (error, 0) 44 obj.GetValueAsUnsigned (error, 0) 45 obj.GetValueAsSigned(0) 46 obj.GetValueAsUnsigned(0) 47 obj.GetDynamicValue (lldb.eNoDynamicValues) 48 obj.GetStaticValue () 49 obj.IsDynamic() 50 invalid_type = lldb.SBType() 51 obj.CreateChildAtOffset ("a", 12, invalid_type) 52 obj.Cast (invalid_type) 53 obj.CreateValueFromExpression ("pt->x", "pt->x") 54 obj.CreateValueFromAddress ("x", 0x123, invalid_type) 55 invalid_data = lldb.SBData() 56 obj.CreateValueFromData ("x", invalid_data, invalid_type) 57 obj.GetValueForExpressionPath("[0]") 58 obj.AddressOf() 59 obj.GetLoadAddress() 60 obj.GetAddress() 61 obj.GetPointeeData (0, 1) 62 obj.GetData () 63 obj.GetTarget() 64 obj.GetProcess() 65 obj.GetThread() 66 obj.GetFrame() 67 obj.GetType() 68