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