Python有其默认的调试器pdb,但社区创建了一些替代方案。其中两个是ipdb和pdb++。它们似乎迎合了相同的受众,它们都可以直接在CLI上运行,并提供一些细节,如彩色输出和制表符完成。
它们是用于不同的目的,还是只是具有相似功能的调试器的竞争?我很难理解什么时候人们会希望使用一个而不是另一个。甚至有人同时使用
我不是pdbpp
的专家,但对我来说,ipdb
有更多的功能(IPython有许多"神奇"的功能,如%timeit、%debug等,这些功能很方便(,而pdbpp
有一个sticky
模式,当你逐步完成时,它会在终端中显示源代码(如GDB的TUI模式(,并且比默认的pdb
功能更强。
因此,它们都是很好的调试选项,但我个人更喜欢ipdb
,因为我习惯于在IPython上以交互方式工作。我发现我可以将我的主调试器设置为ipdb
,如下所示:
export PYTHONBREAKPOINT=ipdb.set_trace # or ipdb.sset_trace
并将breakpoint()
放入Python源代码中进行调试。如果还安装了pdbpp
,我可以从ipdb
会话调用sticky
,这很好。