gpt4 book ai didi

python - 为什么在 cmd.Cmd 子类函数中退出 ipdb 会退出函数?

转载 作者:太空宇宙 更新时间:2023-11-04 04:03:45 26 4
gpt4 key购买 nike

我有一个小的 cmd 子类:

class Foo(cmd.Cmd):
def do_ipdb(self, *a, **kw):
import ipdb; ipdb.set_trace()
pass

Foo().cmdloop()

这可以让我进入 ipdb,但是当退出时,无论是使用“q”还是 CTRL-D,cmdloop 也会中断(这不是我们想要的)

我尝试用 try/except 包装 ipdb,但我没有到达 except 部分。退出 ipdb 后如何维护 cmdloop?

顺便说一句,我看到 cmd2 已经做了我想做的事情(使用它的默认 python 选项),但我仍然想知道旧 cmd 中发生了什么

最佳答案

根据 ipdb documentation , ipdb 暴露

same interface as the pdb module

pdb docs对于q (uit) 状态:

Quit from the debugger. The program being executed is aborted.

因此,当您按下“q”时,调试器正在运行的程序都会退出。

您可能想使用不同的 pdb 命令,例如 c (继续):

Continue execution, only stop when a breakpoint is encountered.

关于python - 为什么在 cmd.Cmd 子类函数中退出 ipdb 会退出函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57756370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com