ipdb 和 pdb++ 之间的区别?

bar*_*lay 11 python debugging pdb ipdb

Python 有一个名为 pdb 的默认调试器,但社区创建了一些替代品。其中两个是ipdbpdb++。它们似乎迎合了相同的受众,它们都可以直接在 CLI 上运行,并提供一些细节,例如彩色输出和制表符完成。

它们是否有不同的用途,或者它们只是具有相似功能的竞争调试器?我很难理解何时人们希望使用其中一种而不是另一种。甚至似乎有人同时使用两者

Apt*_*ryx 8

我不是pdbpp专家,但对我来说ipdb它具有更多功能(IPython 有许多“神奇”功能,例如 %timeit、%debug 等,非常方便),同时pdbpp还有一种sticky模式,可以在您执行操作时在终端中显示源代码通过(如 GDB 的 TUI 模式)并且比默认的pdb.

因此,它们都是调试的不错选择,但我个人更喜欢它们,ipdb因为我习惯于通过 IPython 进行交互工作。我发现我可以将我的主调试器设置为ipdb这样:

export PYTHONBREAKPOINT=ipdb.set_trace   # or ipdb.sset_trace
Run Code Online (Sandbox Code Playgroud)

并放入breakpoint()Python源码进行调试。如果pdbpp也安装了,我可以stickyipdb会话中调用,这很简洁。