pdb.set_trace()在正确的位置暂停,但未显示任何有用的信息

问题描述 投票:0回答:1

我正在调试具有许多依赖性的脚本。我在1个文件中设置了一个断点,以便当脚本到达该行时它将暂停程序,并且我可以逐步使用python的pdb类。脚本运行时,它会在命令提示符的右行正确地暂停程序,但是,它根本不显示任何信息。我尝试打印范围内的变量,它不会向控制台返回任何内容。如果我输入n(代表下一个)并按Enter键,它甚至不会打印它转到的下一行。我根本无法获得任何信息。这是一个示例...注意:变量测试在脚本中断点所在的本地范围内。

(Pdb) print(testing)
(Pdb)
(Pdb) n
(Pdb) n
(Pdb)
(Pdb)

通常,当我在调试时按n时,它将显示将要执行的下一行,但是它并未显示上述任何内容。

我知道我没有提供太多的信息代码,所以我希望这是足够的信息,以便我们理解。

因此,在某些特定情况下python的调试器将不会显示此类情况的任何信息吗?为什么会发生?

python pdb
1个回答
0
投票

经过进一步研究,我发现脚本stdout中的某个位置由于我不知道的原因而被占用并覆盖。如果您对pdb无法打印到控制台有类似的问题,则可以执行...

import sys
sys.stdout.write("TESTING")

如果未向控制台返回“ TESTING”,则说明标准输出已被脚本中的某处覆盖。

© www.soinside.com 2019 - 2024. All rights reserved.