Я хочу иметь возможность использовать pdb в качестве подпроцесса, ввести оператор отладки и получить его вывод. и я обнаружил, что fcntl может помочь, но, к моему удивлению, он работает для других программ, таких как gdb, но когда cmd имеет значение "python" или ["python", "-m", "pdb", "computer.py" ], Это не будет работать.
Я заменяю cmd на 'gdb' или другую программу, все это работает с fcntl.
но только сбой, когда cmd связан с 'python'.
Popen (['python', '-m', 'pdb', 'computer.py'], stdin = PIPE, stdout = PIPE, shell = False)
flags = fcntl (p.stdout.fileno (), F_GETFL)
fcntl (p.stdout.fileno (), F_SETFL, flags | O_NONBLOCK)
ожидаемый результат: я могу получить стандартный вывод.