def setup_backend(serve=True, host=DEFAULT_HOST, port=DEFAULT_PORT, debug=False, open_browser=True, testing=False, private_key=None, certificate=None, LLDB=False): """Run the server of the gdb gui""" app.config['LLDB'] = LLDB kwargs = {} ssl_context = get_ssl_context(private_key, certificate) if ssl_context: # got valid ssl context # force everything through https SSLify(app) # pass ssl_context to flask kwargs['ssl_context'] = ssl_context url = '%s:%s' % (host, port) if kwargs.get('ssl_context'): protocol = 'https://' url_with_prefix = 'https://' + url else: protocol = 'http://' url_with_prefix = 'http://' + url if debug: async_mode = 'eventlet' else: async_mode = 'gevent' socketio.server_options['async_mode'] = async_mode try: socketio.init_app(app) except Exception: print( 'failed to initialize socketio app with async mode "%s". Continuing with async mode "threading".' % async_mode) socketio.server_options['async_mode'] = 'threading' socketio.init_app(app) if testing is False: if host == DEFAULT_HOST: url = (DEFAULT_HOST, port) else: try: url = (socket.gethostbyname(socket.gethostname()), port) except Exception: url = (host, port) if open_browser is True and debug is False: text = ('Opening gdbgui in browser at ' + protocol + '%s:%d') % url print(colorize(text)) webbrowser.open(url_with_prefix) else: print( colorize('View gdbgui at %s%s:%d' % (protocol, url[0], url[1]))) print('exit gdbgui by pressing CTRL+C') try: socketio.run(app, debug=debug, port=int(port), host=host, extra_files=get_extra_files(), **kwargs) except KeyboardInterrupt: # Process was interrupted by ctrl+c on keyboard, show message sys.stdout.write('gdbgui has exited\n')
def setup_backend( serve=True, host=DEFAULT_HOST, port=DEFAULT_PORT, debug=False, open_browser=True, browsername=None, testing=False, private_key=None, certificate=None, LLDB=False, ): """Run the server of the gdb gui""" app.config["LLDB"] = LLDB kwargs = {} ssl_context = get_ssl_context(private_key, certificate) if ssl_context: # got valid ssl context # force everything through https SSLify(app) # pass ssl_context to flask kwargs["ssl_context"] = ssl_context url = "%s:%s" % (host, port) if kwargs.get("ssl_context"): protocol = "https://" url_with_prefix = "https://" + url else: protocol = "http://" url_with_prefix = "http://" + url if debug: async_mode = "eventlet" else: async_mode = "gevent" socketio.server_options["async_mode"] = async_mode try: socketio.init_app(app) except Exception: print( 'failed to initialize socketio app with async mode "%s". Continuing with async mode "threading".' % async_mode) socketio.server_options["async_mode"] = "threading" socketio.init_app(app) if testing is False: if host == DEFAULT_HOST: url = (DEFAULT_HOST, port) else: try: url = (socket.gethostbyname(socket.gethostname()), port) except Exception: url = (host, port) if open_browser is True and debug is False: browsertext = repr( browsername) if browsername else "default browser" args = (browsertext, ) + url text = ("Opening gdbgui with %s at " + protocol + "%s:%d") % args print(colorize(text)) b = webbrowser.get(browsername) if browsername else webbrowser b.open(url_with_prefix) else: print( colorize("View gdbgui at %s%s:%d" % (protocol, url[0], url[1]))) print("exit gdbgui by pressing CTRL+C") try: socketio.run(app, debug=debug, port=int(port), host=host, extra_files=get_extra_files(), **kwargs) except KeyboardInterrupt: # Process was interrupted by ctrl+c on keyboard, show message pass
def run_server( *, app=None, socketio=None, host=DEFAULT_HOST, port=DEFAULT_PORT, debug=False, open_browser=True, browsername=None, testing=False, private_key=None, certificate=None, ): """Run the server of the gdb gui""" kwargs = {} ssl_context = get_ssl_context(private_key, certificate) if ssl_context: # got valid ssl context # force everything through https SSLify(app) # pass ssl_context to flask kwargs["ssl_context"] = ssl_context url = "%s:%s" % (host, port) if kwargs.get("ssl_context"): protocol = "https://" url_with_prefix = "https://" + url else: protocol = "http://" url_with_prefix = "http://" + url socketio.server_options["allow_upgrades"] = False socketio.init_app(app) if testing is False: if host == DEFAULT_HOST: url = (DEFAULT_HOST, port) else: try: url = (socket.gethostbyname(socket.gethostname()), port) except Exception: url = (host, port) if open_browser is True and debug is False: browsertext = repr( browsername) if browsername else "default browser" args = (browsertext, ) + url text = ("Opening gdbgui with %s at " + protocol + "%s:%d") % args print(colorize(text)) b = webbrowser.get(browsername) if browsername else webbrowser b.open(url_with_prefix) else: print(colorize(f"View gdbgui at {protocol}{url[0]}:{url[1]}")) print( colorize( f"View gdbgui dashboard at {protocol}{url[0]}:{url[1]}/dashboard" )) print("exit gdbgui by pressing CTRL+C") try: socketio.run( app, debug=debug, port=int(port), host=host, extra_files=get_extra_files(), **kwargs, ) except KeyboardInterrupt: # Process was interrupted by ctrl+c on keyboard, show message pass