def android_test_setup(testbin): utils.green('testing %s' % testbin) # send file to phone fpath = testbin_to_fpath(testbin) shellout(['adb', 'push', fpath, '/data/local/tmp']) # launch adb threading.Thread(target=invoke_adb_gdb_listen, args=[testbin]).start() # connect to adb time.sleep(.25) adapter = gdb.DebugAdapterGdb() adapter.connect('localhost', 31337) entry = confirm_initial_module(adapter, testbin) return (adapter, entry)
if __name__ == '__main__': colorama.init() # set up ctrl+c for break-into signal.signal(signal.SIGINT, handler_sigint) if platform.system() == 'Windows': adjust_ctrl_c() adapter = None if not sys.argv[1:]: raise Exception('specify target on command line') arg1 = sys.argv[1] if re.match(r'^.*:\d+$', arg1): (host, port) = arg1.split(':') adapter = gdb.DebugAdapterGdb() adapter.setup() adapter.connect(host, int(port)) else: if '~' in arg1: arg1 = os.expanduser(arg1) arg1 = os.path.abspath(arg1) if not os.path.exists(arg1): raise Exception('file not found: %s' % arg1) adapter = DebugAdapter.get_adapter_for_current_system() adapter.setup() adapter.exec(arg1, '') arch = adapter.target_arch()