使用pdb调试进入子进程?

时间:2015-03-26 18:45:12

标签: python debugging subprocess pdb

我有一些python代码,有许多子进程调用(例如,subprocess.check_call())。它显然无法调试到子进程。

有没有办法(例如添加代码)来实现它,或者我必须使用不同的调试器吗?

2 个答案:

答案 0 :(得分:3)

事实证明,代码调用子进程也重定向了stdout:

subprocess.call(["called_program",
     "-q", num_processes,
     "-k", yaml_key],
    stdout=logfile,
    stderr=subprocess.STDOUT)

根据tdelaney的评论,我删除了重定向并在called_program.py中添加了断点。现在我可以在该模块中使用pdb。

答案 1 :(得分:0)

如果您有pdb,则必须单步执行代码。如果您有源文件,请在您感兴趣的行中留下断点,并使用pdb自动停在您感兴趣的行。

这就是我们在.net中所做的事情。希望它也适用于python ..