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.GetProcess() 10*99451b44SJordan Rupprecht listener = lldb.SBListener() 11*99451b44SJordan Rupprecht error = lldb.SBError() 12*99451b44SJordan Rupprecht obj.Launch(listener, None, None, None, None, None, None, 0, True, error) 13*99451b44SJordan Rupprecht obj.LaunchSimple(None, None, None) 14*99451b44SJordan Rupprecht obj.AttachToProcessWithID(listener, 123, error) 15*99451b44SJordan Rupprecht obj.AttachToProcessWithName(listener, 'lldb', False, error) 16*99451b44SJordan Rupprecht obj.ConnectRemote(listener, "connect://to/here", None, error) 17*99451b44SJordan Rupprecht obj.GetExecutable() 18*99451b44SJordan Rupprecht obj.GetNumModules() 19*99451b44SJordan Rupprecht obj.GetModuleAtIndex(0xffffffff) 20*99451b44SJordan Rupprecht obj.GetDebugger() 21*99451b44SJordan Rupprecht filespec = lldb.SBFileSpec() 22*99451b44SJordan Rupprecht obj.FindModule(filespec) 23*99451b44SJordan Rupprecht sc_list = obj.FindFunctions("the_func") 24*99451b44SJordan Rupprecht sc_list = obj.FindFunctions("the_func", lldb.eFunctionNameTypeAny) 25*99451b44SJordan Rupprecht obj.FindFirstType("dont_care") 26*99451b44SJordan Rupprecht obj.FindTypes("dont_care") 27*99451b44SJordan Rupprecht obj.FindFirstType(None) 28*99451b44SJordan Rupprecht obj.GetInstructions(lldb.SBAddress(), bytearray()) 29*99451b44SJordan Rupprecht obj.GetSourceManager() 30*99451b44SJordan Rupprecht obj.FindGlobalVariables("my_global_var", 1) 31*99451b44SJordan Rupprecht address = obj.ResolveLoadAddress(0xffff) 32*99451b44SJordan Rupprecht obj.ResolveSymbolContextForAddress(address, 0) 33*99451b44SJordan Rupprecht obj.BreakpointCreateByLocation("filename", 20) 34*99451b44SJordan Rupprecht obj.BreakpointCreateByLocation(filespec, 20) 35*99451b44SJordan Rupprecht obj.BreakpointCreateByName("func", None) 36*99451b44SJordan Rupprecht obj.BreakpointCreateByRegex("func.", None) 37*99451b44SJordan Rupprecht obj.BreakpointCreateByAddress(0xf0f0) 38*99451b44SJordan Rupprecht obj.GetNumBreakpoints() 39*99451b44SJordan Rupprecht obj.GetBreakpointAtIndex(0) 40*99451b44SJordan Rupprecht obj.BreakpointDelete(0) 41*99451b44SJordan Rupprecht obj.FindBreakpointByID(0) 42*99451b44SJordan Rupprecht obj.EnableAllBreakpoints() 43*99451b44SJordan Rupprecht obj.DisableAllBreakpoints() 44*99451b44SJordan Rupprecht obj.DeleteAllBreakpoints() 45*99451b44SJordan Rupprecht obj.GetNumWatchpoints() 46*99451b44SJordan Rupprecht obj.GetWatchpointAtIndex(0) 47*99451b44SJordan Rupprecht obj.DeleteWatchpoint(0) 48*99451b44SJordan Rupprecht obj.FindWatchpointByID(0) 49*99451b44SJordan Rupprecht obj.EnableAllWatchpoints() 50*99451b44SJordan Rupprecht obj.DisableAllWatchpoints() 51*99451b44SJordan Rupprecht obj.DeleteAllWatchpoints() 52*99451b44SJordan Rupprecht obj.GetAddressByteSize() 53*99451b44SJordan Rupprecht obj.GetByteOrder() 54*99451b44SJordan Rupprecht obj.GetTriple() 55*99451b44SJordan Rupprecht error = lldb.SBError() 56*99451b44SJordan Rupprecht obj.WatchAddress(123, 8, True, True, error) 57*99451b44SJordan Rupprecht obj.GetBroadcaster() 58*99451b44SJordan Rupprecht obj.GetDescription(lldb.SBStream(), lldb.eDescriptionLevelBrief) 59*99451b44SJordan Rupprecht obj.Clear() 60*99451b44SJordan Rupprecht for module in obj.module_iter(): 61*99451b44SJordan Rupprecht s = str(module) 62*99451b44SJordan Rupprecht for bp in obj.breakpoint_iter(): 63*99451b44SJordan Rupprecht s = str(bp) 64*99451b44SJordan Rupprecht for wp in obj.watchpoint_iter(): 65*99451b44SJordan Rupprecht s = str(wp) 66