""" Fuzz tests an object after the default construction to make sure it does not crash lldb. """ import sys import lldb def fuzz_obj(obj): obj.GetError() obj.GetID() obj.GetName() obj.GetTypeName() obj.GetByteSize() obj.IsInScope() obj.GetFormat() obj.SetFormat(lldb.eFormatBoolean) obj.GetValue() obj.GetValueType() obj.GetValueDidChange() obj.GetSummary() obj.GetObjectDescription() obj.GetLocation() obj.SetValueFromCString("my_new_value") obj.GetChildAtIndex(1) obj.GetChildAtIndex(2, lldb.eNoDynamicValues, False) obj.GetIndexOfChildWithName("my_first_child") obj.GetChildMemberWithName("my_first_child") obj.GetChildMemberWithName("my_first_child", lldb.eNoDynamicValues) obj.GetNumChildren() obj.GetOpaqueType() obj.Dereference() obj.TypeIsPointerType() stream = lldb.SBStream() obj.GetDescription(stream) obj.GetExpressionPath(stream) obj.GetExpressionPath(stream, True) error = lldb.SBError() obj.Watch(True, True, False, error) obj.WatchPointee(True, False, True, error) for child_val in obj: print child_val error = lldb.SBError() obj.GetValueAsSigned (error, 0) obj.GetValueAsUnsigned (error, 0) obj.GetValueAsSigned(0) obj.GetValueAsUnsigned(0) obj.GetDynamicValue (lldb.eNoDynamicValues) obj.GetStaticValue () obj.IsDynamic() invalid_type = lldb.SBType() obj.CreateChildAtOffset ("a", 12, invalid_type) obj.Cast (invalid_type) obj.CreateValueFromExpression ("pt->x", "pt->x") obj.CreateValueFromAddress ("x", 0x123, invalid_type) invalid_data = lldb.SBData() obj.CreateValueFromData ("x", invalid_data, invalid_type) obj.GetValueForExpressionPath("[0]") obj.AddressOf() obj.GetLoadAddress() obj.GetAddress() obj.GetPointeeData (0, 1) obj.GetData () obj.GetTarget() obj.GetProcess() obj.GetThread() obj.GetFrame() obj.GetType()