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

我正在使用pdb模块来debugging程序。 我想了解如何退出pdb并让程序继续完成。 该程序在运行上运行起来很昂贵,所以我不想在脚本尝试完成的情况下退出。 continue似乎没有工作。 我怎样才能退出pdb并继续我的程序?

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! 

一个简单的CtrlD将突破pdb。 如果你想继续而不是打破,只需按c而不是整个continue命令

如果你真的想退出debugging器,那么你需要运行一些类似于WinPdb的东西,它允许你从进程中分离,然后退出debugging器(注意它是多平台的)。

如果你想继续debugging,但不再停在给定的断点,那么你需要:

  1. 记下断点编号(或文件和行号),
  2. 可以使用cl bp_number clear file:line来永久删除断点, 也可以 disable pb_number来将其closures,但可以将其切换回来。
  3. 然后continue ,你的程序运行到下一个不同的断点。

有关上述的更多细节,请参阅手册 。