199451b44SJordan Rupprecht""" 299451b44SJordan RupprechtFuzz tests an object after the default construction to make sure it does not crash lldb. 399451b44SJordan Rupprecht""" 499451b44SJordan Rupprecht 599451b44SJordan Rupprechtimport lldb 699451b44SJordan Rupprecht 799451b44SJordan Rupprecht 899451b44SJordan Rupprechtdef fuzz_obj(obj): 999451b44SJordan Rupprecht obj.GetProcess() 1099451b44SJordan Rupprecht listener = lldb.SBListener() 1199451b44SJordan Rupprecht error = lldb.SBError() 1299451b44SJordan Rupprecht obj.Launch(listener, None, None, None, None, None, None, 0, True, error) 1399451b44SJordan Rupprecht obj.LaunchSimple(None, None, None) 1499451b44SJordan Rupprecht obj.AttachToProcessWithID(listener, 123, error) 152238dcc3SJonas Devlieghere obj.AttachToProcessWithName(listener, "lldb", False, error) 1699451b44SJordan Rupprecht obj.ConnectRemote(listener, "connect://to/here", None, error) 1799451b44SJordan Rupprecht obj.GetExecutable() 1899451b44SJordan Rupprecht obj.GetNumModules() 192238dcc3SJonas Devlieghere obj.GetModuleAtIndex(0xFFFFFFFF) 2099451b44SJordan Rupprecht obj.GetDebugger() 2199451b44SJordan Rupprecht filespec = lldb.SBFileSpec() 2299451b44SJordan Rupprecht obj.FindModule(filespec) 2399451b44SJordan Rupprecht sc_list = obj.FindFunctions("the_func") 2499451b44SJordan Rupprecht sc_list = obj.FindFunctions("the_func", lldb.eFunctionNameTypeAny) 2599451b44SJordan Rupprecht obj.FindFirstType("dont_care") 2699451b44SJordan Rupprecht obj.FindTypes("dont_care") 2799451b44SJordan Rupprecht obj.FindFirstType(None) 2899451b44SJordan Rupprecht obj.GetInstructions(lldb.SBAddress(), bytearray()) 2999451b44SJordan Rupprecht obj.GetSourceManager() 3099451b44SJordan Rupprecht obj.FindGlobalVariables("my_global_var", 1) 312238dcc3SJonas Devlieghere address = obj.ResolveLoadAddress(0xFFFF) 3299451b44SJordan Rupprecht obj.ResolveSymbolContextForAddress(address, 0) 3399451b44SJordan Rupprecht obj.BreakpointCreateByLocation("filename", 20) 3499451b44SJordan Rupprecht obj.BreakpointCreateByLocation(filespec, 20) 3599451b44SJordan Rupprecht obj.BreakpointCreateByName("func", None) 3699451b44SJordan Rupprecht obj.BreakpointCreateByRegex("func.", None) 372238dcc3SJonas Devlieghere obj.BreakpointCreateByAddress(0xF0F0) 3899451b44SJordan Rupprecht obj.GetNumBreakpoints() 3999451b44SJordan Rupprecht obj.GetBreakpointAtIndex(0) 4099451b44SJordan Rupprecht obj.BreakpointDelete(0) 4199451b44SJordan Rupprecht obj.FindBreakpointByID(0) 4299451b44SJordan Rupprecht obj.EnableAllBreakpoints() 4399451b44SJordan Rupprecht obj.DisableAllBreakpoints() 4499451b44SJordan Rupprecht obj.DeleteAllBreakpoints() 4599451b44SJordan Rupprecht obj.GetNumWatchpoints() 4699451b44SJordan Rupprecht obj.GetWatchpointAtIndex(0) 4799451b44SJordan Rupprecht obj.DeleteWatchpoint(0) 4899451b44SJordan Rupprecht obj.FindWatchpointByID(0) 4999451b44SJordan Rupprecht obj.EnableAllWatchpoints() 5099451b44SJordan Rupprecht obj.DisableAllWatchpoints() 5199451b44SJordan Rupprecht obj.DeleteAllWatchpoints() 5299451b44SJordan Rupprecht obj.GetAddressByteSize() 5399451b44SJordan Rupprecht obj.GetByteOrder() 5499451b44SJordan Rupprecht obj.GetTriple() 5599451b44SJordan Rupprecht error = lldb.SBError() 56*75e86207SDavid Spickett wp_opts = lldb.SBWatchpointOptions() 57*75e86207SDavid Spickett wp_opts.SetWatchpointTypeRead(True) 58*75e86207SDavid Spickett wp_opts.SetWatchpointTypeWrite(lldb.eWatchpointWriteTypeOnModify) 59*75e86207SDavid Spickett obj.WatchpointCreateByAddress(123, 8, wp_opts, error) 6099451b44SJordan Rupprecht obj.GetBroadcaster() 6199451b44SJordan Rupprecht obj.GetDescription(lldb.SBStream(), lldb.eDescriptionLevelBrief) 6299451b44SJordan Rupprecht obj.Clear() 6399451b44SJordan Rupprecht for module in obj.module_iter(): 6499451b44SJordan Rupprecht s = str(module) 6599451b44SJordan Rupprecht for bp in obj.breakpoint_iter(): 6699451b44SJordan Rupprecht s = str(bp) 6799451b44SJordan Rupprecht for wp in obj.watchpoint_iter(): 6899451b44SJordan Rupprecht s = str(wp) 69