本文整理汇总了Python中gdb_websocket.GDBWebSocket.close方法的典型用法代码示例。如果您正苦于以下问题:Python GDBWebSocket.close方法的具体用法?Python GDBWebSocket.close怎么用?Python GDBWebSocket.close使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gdb_websocket.GDBWebSocket
的用法示例。
在下文中一共展示了GDBWebSocket.close方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
if self.detach_event.isSet():
continue
self.abstract_socket.setBlocking(1)
data = data[data.index("$"):]
self.lock.acquire()
if len(data) != 0:
# decode and prepare resp
[resp, ack, detach] = self.handleMsg(data)
if resp is not None:
# ack
if ack:
resp = "+" + resp
# send resp
self.abstract_socket.write(resp)
# wait a '+' from the client
try:
data = self.abstract_socket.read()
if data[0] != '+':
logging.debug('gdb client has not ack!')
else:
logging.debug('gdb client has ack!')
if data.index("$") >= 0 and data.index("#") >= 0:
new_command = True
except:
pass
if detach:
self.abstract_socket.close()
self.lock.release()
break
self.lock.release()
def handleMsg(self, msg):
if msg[0] != '$':
logging.debug('msg ignored: first char != $')
return None, 0, 0
#logging.debug('-->>>>>>>>>>>> GDB rsp packet: %s', msg)
# query command
if msg[1] == 'q':
return self.handleQuery(msg[2:]), 1, 0
elif msg[1] == 'H':
return self.createRSPPacket(''), 1, 0
elif msg[1] == '?':
return self.lastSignal(), 1, 0
elif msg[1] == 'g':
return self.getRegister(), 1, 0
elif msg[1] == 'p':
return self.readRegister(msg[2:]), 1, 0
elif msg[1] == 'P':
return self.writeRegister(msg[2:]), 1, 0
示例2: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
if self.detach_event.isSet():
continue
self.abstract_socket.setBlocking(1)
data = data[data.index("$"):]
self.lock.acquire()
if len(data) != 0:
# decode and prepare resp
[resp, ack, detach] = self.handleMsg(data)
if resp is not None:
# ack
if ack:
resp = "+" + resp
# send resp
self.abstract_socket.write(resp)
# wait a '+' from the client
try:
data = self.abstract_socket.read()
if data[0] != '+':
logging.debug('gdb client has not ack!')
else:
logging.debug('gdb client has ack!')
if data.index("$") >= 0 and data.index("#") >= 0:
new_command = True
except:
pass
if detach:
self.abstract_socket.close()
self.lock.release()
break
self.lock.release()
def handleMsg(self, msg):
if msg[0] != '$':
logging.debug('msg ignored: first char != $')
return None, 0, 0
#logging.debug('-->>>>>>>>>>>> GDB rsp packet: %s', msg)
# query command
if msg[1] == 'q':
return self.handleQuery(msg[2:]), 1, 0
elif msg[1] == 'H':
return self.createRSPPacket(''), 1, 0
elif msg[1] == '?':
return self.lastSignal(), 1, 0
elif msg[1] == 'g':
return self.getRegister(), 1, 0
elif msg[1] == 'p':
return self.readRegister(msg[2:]), 1, 0
elif msg[1] == 'P':
return self.writeRegister(msg[2:]), 1, 0
示例3: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
self.sendStopNotification()
except Exception as e:
logging.error("Unexpected exception: %s", e)
traceback.print_exc()
# read command
try:
packet = self.packet_io.receive(block=not self.non_stop)
except ConnectionClosedException:
break
if self.shutdown_event.isSet():
self._cleanup()
return
if self.detach_event.isSet():
break
if self.non_stop and packet is None:
sleep(0.1)
continue
self.lock.acquire()
if len(packet) != 0:
# decode and prepare resp
resp, detach = self.handleMsg(packet)
if resp is not None:
# send resp
self.packet_io.send(resp)
if detach:
self.abstract_socket.close()
self.packet_io.stop()
self.packet_io = None
self.lock.release()
if self.persist:
break
else:
self.shutdown_event.set()
return
self.lock.release()
except Exception as e:
logging.error("Unexpected exception: %s", e)
traceback.print_exc()
def handleMsg(self, msg):
try:
if msg[0] != '$':
logging.debug('msg ignored: first char != $')
return None, 0
# query command
if msg[1] == '?':
return self.stopReasonQuery(), 0
# we don't send immediately the response for C and S commands
elif msg[1] == 'C' or msg[1] == 'c':
return self.resume(msg[1:]), 0
elif msg[1] == 'D':
return self.detach(msg[1:]), 1
示例4: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
self.sendStopNotification()
except Exception as e:
logging.error("Unexpected exception: %s", e)
traceback.print_exc()
# read command
try:
packet = self.packet_io.receive(block=not self.non_stop)
except ConnectionClosedException:
break
if self.shutdown_event.isSet():
self._cleanup()
return
if self.detach_event.isSet():
break
if self.non_stop and packet is None:
sleep(0.1)
continue
self.lock.acquire()
if len(packet) != 0:
# decode and prepare resp
resp, detach = self.handleMsg(packet)
if resp is not None:
# send resp
self.packet_io.send(resp)
if detach:
self.abstract_socket.close()
self.packet_io.stop()
self.packet_io = None
self.lock.release()
if self.persist:
break
else:
self.shutdown_event.set()
return
self.lock.release()
except Exception as e:
logging.error("Unexpected exception: %s", e)
traceback.print_exc()
def handleMsg(self, msg):
try:
if msg[0] != "$":
logging.debug("msg ignored: first char != $")
return None, 0
# query command
if msg[1] == "?":
return self.stopReasonQuery(), 0
# we don't send immediately the response for C and S commands
elif msg[1] == "C" or msg[1] == "c":
return self.resume(msg[1:]), 0
elif msg[1] == "D":
return self.detach(msg[1:]), 1
示例5: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
self.lock.acquire()
if len(data) != 0:
# decode and prepare resp
[resp, ack, detach] = self.handleMsg(data)
# Clear out data
data = ""
if resp is not None:
# ack
if ack and self.send_acks:
resp = "+" + resp
# send resp
self.abstract_socket.write(resp)
if self.send_acks:
# wait a '+' from the client
try:
data = self.abstract_socket.read()
if LOG_ACK:
if data[0] != '+':
logging.debug('gdb client has not ack!')
else:
logging.debug('gdb client has ack!')
if self.clear_send_acks:
self.send_acks = False
if data.index("$") >= 0 and data.index("#") >= 0:
new_command = True
except:
pass
if detach:
self.abstract_socket.close()
self.lock.release()
if self.persist:
break
else:
return
self.timeOfLastPacket = time()
self.lock.release()
def handleMsg(self, msg):
if msg[0] != '$':
logging.debug('msg ignored: first char != $')
return None, 0, 0
#logging.debug('-->>>>>>>>>>>> GDB rsp packet: %s', msg)
# query command
if msg[1] == '?':
return self.createRSPPacket(self.target.getTResponse()), 1, 0
# we don't send immediately the response for C and S commands
elif msg[1] == 'C' or msg[1] == 'c':
return self.resume()
elif msg[1] == 'D':
return self.detach(msg[1:]), 1, 1
elif msg[1] == 'g':
return self.getRegisters(), 1, 0
示例6: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
if self.detach_event.isSet():
continue
self.abstract_socket.setBlocking(1)
data = data[data.index("$"):]
self.lock.acquire()
if len(data) != 0:
# decode and prepare resp
[resp, ack, detach] = self.handleMsg(data)
if resp is not None:
# ack
if ack:
resp = "+" + resp
# send resp
self.abstract_socket.write(resp.encode())
# wait a '+' from the client
try:
data = self.abstract_socket.read().decode()
if data[0] != '+':
logging.debug('gdb client has not ack!')
else:
logging.debug('gdb client has ack!')
if data.index("$") >= 0 and data.index("#") >= 0:
new_command = True
except:
pass
if detach:
self.abstract_socket.close()
self.lock.release()
if self.persist:
break
else:
return
self.timeOfLastPacket = time()
self.lock.release()
def handleMsg(self, msg):
if msg[0] != '$':
logging.debug('msg ignored: first char != $')
return None, 0, 0
#logging.debug('-->>>>>>>>>>>> GDB rsp packet: %s', msg)
# query command
if msg[1] == 'q':
return self.handleQuery(msg[2:]), 1, 0
elif msg[1] == 'H':
return self.createRSPPacket(''), 1, 0
elif msg[1] == '?':
return self.createRSPPacket(self.target.getTResponse()), 1, 0
elif msg[1] == 'g':
return self.getRegisters(), 1, 0
示例7: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
self.sendStopNotification()
except Exception as e:
self.log.error("Unexpected exception: %s", e)
traceback.print_exc()
# read command
try:
packet = self.packet_io.receive(block=not self.non_stop)
except ConnectionClosedException:
break
if self.shutdown_event.isSet():
self._cleanup()
return
if self.detach_event.isSet():
break
if self.non_stop and packet is None:
sleep(0.1)
continue
self.lock.acquire()
if len(packet) != 0:
# decode and prepare resp
resp, detach = self.handleMsg(packet)
if resp is not None:
# send resp
self.packet_io.send(resp)
if detach:
self.abstract_socket.close()
self.packet_io.stop()
self.packet_io = None
self.lock.release()
if self.persist:
self._cleanup_for_next_connection()
break
else:
self.shutdown_event.set()
return
self.lock.release()
except Exception as e:
self.log.error("Unexpected exception: %s", e)
traceback.print_exc()
def handleMsg(self, msg):
try:
assert msg[0] == '$', "invalid first char of message (!= $"
try:
handler, msgStart = self.COMMANDS[msg[1]]
if msgStart == 0:
reply = handler()
else:
reply = handler(msg[msgStart:])
detach = 1 if msg[1] in self.DETACH_COMMANDS else 0
return reply, detach
except (KeyError, IndexError):
self.log.error("Unknown RSP packet: %s", msg)
return self.createRSPPacket(""), 0
示例8: GDBServer
# 需要导入模块: from gdb_websocket import GDBWebSocket [as 别名]
# 或者: from gdb_websocket.GDBWebSocket import close [as 别名]
#.........这里部分代码省略.........
if self.detach_event.isSet():
continue
self.abstract_socket.setBlocking(1)
data = data[data.index("$") :]
self.lock.acquire()
if len(data) != 0:
# decode and prepare resp
[resp, ack, detach] = self.handleMsg(data)
if resp is not None:
# ack
if ack:
resp = "+" + resp
# send resp
self.abstract_socket.write(resp)
# wait a '+' from the client
try:
data = self.abstract_socket.read()
if data[0] != "+":
logging.debug("gdb client has not ack!")
else:
logging.debug("gdb client has ack!")
if data.index("$") >= 0 and data.index("#") >= 0:
new_command = True
except:
pass
if detach:
self.abstract_socket.close()
self.lock.release()
break
self.lock.release()
def handleMsg(self, msg):
if msg[0] != "$":
logging.debug("msg ignored: first char != $")
return None, 0, 0
# logging.debug('-->>>>>>>>>>>> GDB rsp packet: %s', msg)
# query command
if msg[1] == "q":
return self.handleQuery(msg[2:]), 1, 0
elif msg[1] == "H":
return self.createRSPPacket(""), 1, 0
elif msg[1] == "?":
return self.lastSignal(), 1, 0
elif msg[1] == "g":
return self.getRegister(), 1, 0
elif msg[1] == "p":
return self.readRegister(msg[2:]), 1, 0
elif msg[1] == "P":
return self.writeRegister(msg[2:]), 1, 0