如何退出pdb并允许程序继续?

2024-04-27 12:14:55 发布

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

我正在使用pdb模块调试程序。我想了解如何退出pdb并允许程序继续运行直至完成。这个程序在计算上很昂贵,所以我不想在脚本没有完成的情况下退出。continue似乎不起作用。如何退出pdb并继续我的程序?


Tags: 模块程序脚本情况pdbcontinue调试程序
3条回答

一个简单的Ctrl-D将从pdb中跳出。如果您想继续而不是中断,只需按c而不是整个continue命令

来自@voithos的answer是正确的,所以我只添加一个选项,以防您使用set_trace。是的,pdb.set_trace = lambda: Nonehack可以正常工作,但如果您设置了其他断点并希望稍后重新启用它,则无法正常工作。对我来说,这说明了一个事实,不幸的是pdb缺少一系列功能(甚至是基本的东西,比如显示列表),这是另一个例子。

好消息是^{}pdb的替代品,它解决的问题之一正是禁用set_trace的问题。所以你可以简单地:

pip install pdbpp

然后在(Pdb++)提示下,键入:

pdb.disable()

如果您想稍后重新启用,这是正常的:

pdb.enable()

别紧张!除此之外,你还会得到很多其他有用的东西。

continue应该“继续执行,只在遇到断点时停止”,所以您在某处设置了断点。要删除断点(如果手动插入):

(Pdb) break
Num Type         Disp Enb   Where
1   breakpoint   keep yes   at /path/to/test.py:5
(Pdb) clear 1
Deleted breakpoint 1
(Pdb) continue

或者,如果您使用的是pdb.set_trace(),您可以试试这个(尽管如果您使用的是pdb的更奇特的方式,这可能会破坏一些东西……)

(Pdb) pdb.set_trace = lambda: None  # This replaces the set_trace() function!
(Pdb) continue
# No more breaks!

相关问题 更多 >