如何在DDD调试器中一次禁用所有断点(pydb模式)

时间:2016-08-19 14:14:52

标签: debugging gdb breakpoints ddd-debugger

使用gdb,我们可以按照ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.html中的说明禁用断点。在文档上,要取消所有断点,它只是给出disalbe而没有断点列表。但是在我的ddd(数据显示 - debuger)中,它并没有起作用。我该怎么做?或者我该如何指定范围? (我试过1-10但没有工作)。

编辑:我使用命令ddd -pydb prog.py arg1 arg2..使用DDD进行python调试,所以它实际上是pydb命令,而不是gdb命令。请参阅答案的注释,后来我发现对于pydb,没有任何参数的命令delete会删除所有断点。要禁用所有断点,您必须修改gdb.py并查看下面的注释。

1 个答案:

答案 0 :(得分:1)

pydb支持的命令与gdb中的命令类似,但它们并不完全相同。目前,如果没有给出参数,pydb的 disable 命令会给出错误。您可以编辑pydb的源代码(可以在许多系统上的/usr/share/pyshared/pydb/中找到)并更改do_disable(在gdb.py中),这样如果没有为禁用,它将禁用所有断点:

*** gdb.py.orig 2009-11-17 17:00:21.000000000 -0800
--- gdb.py  2016-08-20 17:12:09.561338798 -0700
***************
*** 1067,1069 ****
          if len(args) == 0:
!             self.errmsg('No breakpoint number given.')
              return
--- 1067,1071 ----
          if len(args) == 0:
!             for bp in bdb.Breakpoint.bpbynumber:
!                 if bp:
!                     bp.disable()
              return