使用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并查看下面的注释。
答案 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