1e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen""" 2e657fbc20b4d5199ad2daae85678f0038df5095dJohnny ChenFuzz tests an object after the default construction to make sure it does not crash lldb. 3e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen""" 4e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen 5e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chenimport sys 6e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chenimport lldb 7e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen 8e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chendef fuzz_obj(obj): 9e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetProcess() 10e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen listener = lldb.SBListener() 11e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen error = lldb.SBError() 12e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.Launch(listener, None, None, None, None, None, None, 0, True, error) 13e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.LaunchSimple(None, None, None) 14e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.AttachToProcessWithID(listener, 123, error) 15e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.AttachToProcessWithName(listener, 'lldb', False, error) 16e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.ConnectRemote(listener, "connect://to/here", None, error) 17e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetExecutable() 18e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetNumModules() 19e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetModuleAtIndex(0xffffffff) 20e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetDebugger() 21e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen filespec = lldb.SBFileSpec() 22e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.FindModule(filespec) 237dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton sc_list = obj.FindFunctions("the_func") 247dd5c51fbab8384b18f20ecc125f9a1bb3c9bcb2Greg Clayton sc_list = obj.FindFunctions("the_func", lldb.eFunctionNameTypeAny) 252e1f447716076bedcaa44b2d34e769fe4074d2e8Johnny Chen obj.FindFirstType("dont_care") 262e1f447716076bedcaa44b2d34e769fe4074d2e8Johnny Chen obj.FindTypes("dont_care") 27cd186e5ef6dacca7bd4914e99ef6b7551b5e79e4Johnny Chen obj.FindFirstType(None) 28607d2ed275cfa5821eba70bea2022b71a130311cJohnny Chen obj.GetInstructions(lldb.SBAddress(), bytearray()) 292e1f447716076bedcaa44b2d34e769fe4074d2e8Johnny Chen obj.GetSourceManager() 30b6dfb16e639e77dd8513be6712c1a4819b29dbb2Johnny Chen obj.FindGlobalVariables("my_global_var", 1) 31a395506fb374f1f589d0d860f5e6c9fa7b1e0b9aGreg Clayton address = obj.ResolveLoadAddress(0xffff) 32e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.ResolveSymbolContextForAddress(address, 0) 33e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.BreakpointCreateByLocation("filename", 20) 34e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.BreakpointCreateByLocation(filespec, 20) 35e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.BreakpointCreateByName("func", None) 36e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.BreakpointCreateByRegex("func.", None) 37e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.BreakpointCreateByAddress(0xf0f0) 38e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetNumBreakpoints() 39e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetBreakpointAtIndex(0) 40e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.BreakpointDelete(0) 41e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.FindBreakpointByID(0) 42e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.EnableAllBreakpoints() 43e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.DisableAllBreakpoints() 44e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.DeleteAllBreakpoints() 45ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen obj.GetNumWatchpoints() 46ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen obj.GetWatchpointAtIndex(0) 47ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen obj.DeleteWatchpoint(0) 48ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen obj.FindWatchpointByID(0) 49ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen obj.EnableAllWatchpoints() 50ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen obj.DisableAllWatchpoints() 51ecd4feb5111432d2878e95461220c720cb2d24c8Johnny Chen obj.DeleteAllWatchpoints() 5286ad476885a1fc5a14692534fb841be4eee7722aGreg Clayton obj.GetAddressByteSize() 5386ad476885a1fc5a14692534fb841be4eee7722aGreg Clayton obj.GetByteOrder() 5486ad476885a1fc5a14692534fb841be4eee7722aGreg Clayton obj.GetTriple() 553f883496e92fce5011f6bf585af3ac6d1cddb64fJohnny Chen error = lldb.SBError() 563f883496e92fce5011f6bf585af3ac6d1cddb64fJohnny Chen obj.WatchAddress(123, 8, True, True, error) 57e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetBroadcaster() 58e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.GetDescription(lldb.SBStream(), lldb.eDescriptionLevelBrief) 59e657fbc20b4d5199ad2daae85678f0038df5095dJohnny Chen obj.Clear() 60a70c157b98bc6e9c8d1853e54473c3bd5a349a77Johnny Chen for module in obj.module_iter(): 61a70c157b98bc6e9c8d1853e54473c3bd5a349a77Johnny Chen print module 62a70c157b98bc6e9c8d1853e54473c3bd5a349a77Johnny Chen for bp in obj.breakpoint_iter(): 63a70c157b98bc6e9c8d1853e54473c3bd5a349a77Johnny Chen print bp 6450e0534f2edd82964a997cde7a79c540e38e76baJohnny Chen for wp in obj.watchpoint_iter(): 6550e0534f2edd82964a997cde7a79c540e38e76baJohnny Chen print wp 66