Я пытаюсь разрешить серверу socketio взаимодействовать с экземпляром gdb, но я не могу получить доступ к памяти или распечатать значение, а также некоторые другие вещи из события socketio, так как gdb будет либо cra sh, либо вызовите MemoryError, поскольку он не может получить доступ к памяти в gdb.parse_and_eval
. Интересно, что он все еще мог разрешать символы, используя gdb.parse_and_eval
.
Вот сервер и клиент, с которыми я тестировал:
#!/usr/bin/env python3
import gdb
import socketio
sio = socketio.Client()
@sio.event
def wat():
print("wat called")
gdb.execute('p "WAT"')
print("wat done")
gdb.execute("b *main")
gdb.execute("r")
sio.connect('http://localhost:5000')
import socketio
import eventlet
# create a Socket.IO server
sio = socketio.Server()
app = socketio.WSGIApp(sio)
@sio.event
def connect(sid, environ):
print("Connected: {}".format(sid))
sio.emit("wat")
eventlet.wsgi.server(eventlet.listen(('127.0.0.1', 5000)), app)
━━┫ gdb -q ./main
Reading symbols from ./main...
(No debugging symbols found in ./main)
(gdb) source mvp-gdb-script.py
Breakpoint 1 at 0x11a9
Breakpoint 1, 0x00005555555551a9 in main ()
wat called
[1] 77701 abort (core dumped) gdb -q ./main