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

2024-09-28 13:14:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个小小的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中发生了什么


Tags: importselfcmdfoodeftrace子类do
1条回答
网友
1楼 · 发布于 2024-09-28 13:14:56

根据ipdb documentation,ipdb公开

same interface as the pdb module

{a3}(uit)的{a2}状态:

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

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

您可能需要使用不同的pdb命令,例如c(continue):

Continue execution, only stop when a breakpoint is encountered.

相关问题 更多 >

    热门问题