Bug report
Bug description:
In a dual-terminal / remote debugging setup, some expressions evaluated in pdb print their results to the debuggee’s stdout instead of the pdb output stream. For example, at the pdb prompt:
(lambda: 123)()
sum(i for i in (1, 2, 3))
their results appear in the remote/debuggee terminal. I have screenshots and a minimal test case demonstrating the issue.
target.py
# target.py
import os
import time
print("TARGET PID:", os.getpid(), flush=True)
print("Target is running... waiting forever.", flush=True)
while True:
time.sleep(1)
attach.py
# attach.py
import sys
import pdb
pid = int(sys.argv[1])
print("Attaching to", pid)
pdb.attach(pid)
CPython versions tested on:
CPython main branch
Operating systems tested on:
Windows
Linked PRs
Bug report
Bug description:
In a dual-terminal / remote debugging setup, some expressions evaluated in pdb print their results to the debuggee’s stdout instead of the pdb output stream. For example, at the pdb prompt:
(lambda: 123)()sum(i for i in (1, 2, 3))their results appear in the remote/debuggee terminal. I have screenshots and a minimal test case demonstrating the issue.
target.py
attach.py
CPython versions tested on:
CPython main branch
Operating systems tested on:
Windows
Linked PRs
_exec_in_closure()#143875_exec_in_closure()(GH-143875) #144061