def on_message(self, message): if '|' in message: cmd, data = message.split('|', 1) else: cmd, data = message, '' if cmd == 'ListSockets': for uuid in sockets.uuids: syncwebsockets.send(self.uuid, 'AddSocket', uuid) elif cmd == 'ListWebsockets': for uuid in websockets.uuids: syncwebsockets.send(self.uuid, 'AddWebSocket', uuid) elif cmd == 'ListBreaks': for brk in breakpoints.get(): syncwebsockets.send(self.uuid, 'AddBreak', brk) elif cmd == 'RemoveBreak': brk = json.loads(data) breakpoints.remove(brk) # If it was here, it wasn't temporary brk['temporary'] = False sockets.broadcast('Unbreak', brk) elif cmd == 'RemoveUUID': sockets.close(data) sockets.remove(data) websockets.close(data) websockets.remove(data) elif cmd == 'ListProcesses': refresh_process(self.uuid) elif cmd == 'Pause': if int(data) == os.getpid(): log.debug('Pausing self') def self_shell(variables): # Debugging self import wdb wdb.set_trace() Process(target=self_shell, args=(globals(),)).start() else: log.debug('Pausing %s' % data) tornado.process.Subprocess([ 'gdb', '-p', data, '-batch'] + [ "-eval-command=call %s" % hook for hook in [ 'PyGILState_Ensure()', 'PyRun_SimpleString(' '"import wdb; wdb.set_trace(skip=1)"' ')', 'PyGILState_Release($1)', ]]) elif cmd == 'RunFile': file_name = data def run(): from wdb import Wdb Wdb.get().run_file(file_name) Process(target=run).start()
def get(self, uuid, action): if action == 'close': sockets.close(uuid) sockets.remove(uuid) websockets.close(uuid) websockets.remove(uuid) self.redirect('/')
def on_close(self): log.info('Websocket closed for %s' % self.uuid) if not tornado.options.options.detached_session: sockets.send(self.uuid, 'Continue') sockets.close(self.uuid)
def on_close(self): log.info('Websocket closed for %s' % self.uuid) if not tornado.options.options.detached_session: sockets.send(self.uuid, 'Close') sockets.close(self.uuid)
def on_close(self): if hasattr(self, 'uuid'): log.info('Websocket closed for %s' % self.uuid) if not tornado.options.options.detached_session: sockets.send(self.uuid, 'Close') sockets.close(self.uuid)