2024-04-27 12:14:55 发布
网友
我正在使用pdb模块调试程序。我想了解如何退出pdb并允许程序继续运行直至完成。这个程序在计算上很昂贵,所以我不想在脚本没有完成的情况下退出。continue似乎不起作用。如何退出pdb并继续我的程序?
continue
一个简单的Ctrl-D将从pdb中跳出。如果您想继续而不是中断,只需按c而不是整个continue命令
来自@voithos的answer是正确的,所以我只添加一个选项,以防您使用set_trace。是的,pdb.set_trace = lambda: Nonehack可以正常工作,但如果您设置了其他断点并希望稍后重新启用它,则无法正常工作。对我来说,这说明了一个事实,不幸的是pdb缺少一系列功能(甚至是基本的东西,比如显示列表),这是另一个例子。
set_trace
pdb.set_trace = lambda: None
pdb
好消息是^{}是pdb的替代品,它解决的问题之一正是禁用set_trace的问题。所以你可以简单地:
pip install pdbpp
然后在(Pdb++)提示下,键入:
(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.set_trace()
(Pdb) pdb.set_trace = lambda: None # This replaces the set_trace() function! (Pdb) continue # No more breaks!
一个简单的Ctrl-D将从pdb中跳出。如果您想继续而不是中断,只需按c而不是整个
continue
命令来自@voithos的answer是正确的,所以我只添加一个选项,以防您使用
set_trace
。是的,pdb.set_trace = lambda: None
hack可以正常工作,但如果您设置了其他断点并希望稍后重新启用它,则无法正常工作。对我来说,这说明了一个事实,不幸的是pdb
缺少一系列功能(甚至是基本的东西,比如显示列表),这是另一个例子。好消息是^{} 是
pdb
的替代品,它解决的问题之一正是禁用set_trace
的问题。所以你可以简单地:然后在
(Pdb++)
提示下,键入:如果您想稍后重新启用,这是正常的:
别紧张!除此之外,你还会得到很多其他有用的东西。
continue
应该“继续执行,只在遇到断点时停止”,所以您在某处设置了断点。要删除断点(如果手动插入):或者,如果您使用的是
pdb.set_trace()
,您可以试试这个(尽管如果您使用的是pdb的更奇特的方式,这可能会破坏一些东西……)相关问题 更多 >
编程相关推荐