diff --git a/pwndbg/commands/misc.py b/pwndbg/commands/misc.py index 10e5d4994..86a381973 100644 --- a/pwndbg/commands/misc.py +++ b/pwndbg/commands/misc.py @@ -2,6 +2,9 @@ import errno as _errno import struct import pwndbg as _pwndbg +import pwndbg.commands +import pwndbg.regs + _errno.errorcode[0] = 'OK' @_pwndbg.commands.ParsedCommand diff --git a/pwndbg/events.py b/pwndbg/events.py index 95f98ffa9..3ff954de9 100644 --- a/pwndbg/events.py +++ b/pwndbg/events.py @@ -72,12 +72,12 @@ def connect(func, event_handler, name=''): def caller(*a): if debug: sys.stdout.write('%r %s.%s %r\n' % (name, func.__module__, func.__name__, a)) if pause: return - # with pwndbg.stdio.stdio: - try: - func() - except Exception as e: - traceback.print_exc() - raise e + with pwndbg.stdio.stdio: + try: + func() + except Exception as e: + traceback.print_exc() + raise e registered[event_handler].append(caller) event_handler.connect(caller) diff --git a/pwndbg/stdio.py b/pwndbg/stdio.py index ca05abfd8..456f3a78f 100644 --- a/pwndbg/stdio.py +++ b/pwndbg/stdio.py @@ -9,10 +9,13 @@ import sys import gdb import pwndbg.compat +import gdb +import pwndbg.compat + def get(fd, mode): if pwndbg.compat.python3: file = io.open(fd, mode=mode, buffering=0, closefd=False) - return io.TextIOWrapper(file, write_through=True, **kw) + return io.TextIOWrapper(file, write_through=True) else: return os.fdopen(fd, mode, 0) @@ -33,3 +36,8 @@ class Stdio(object): sys.stdin, sys.stdout, sys.stderr = self.queue.pop() stdio = Stdio() + +if False: + sys.stdin = get(0, 'rb') + sys.stdout = get(1, 'wb') + sys.stderr = get(2, 'wb')