hyongtao-code · GitHub

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)

Image

CPython versions tested on:

CPython main branch

Operating systems tested on:

Windows

Linked PRs

Read the original on github.com ↗