使用gdb,我们可以禁用断点,详见ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.html。在文档中,要禁用所有的断点,它说只提供disalbe
而不提供断点列表。但是在我的ddd(数据显示调试器)中,它不起作用。我该怎么做呢?或者我如何指定范围?(我尝试了1-10,但没有工作)。
编辑:我使用DDD为python调试使用命令ddd -pydb prog.py arg1 arg2..
,所以它实际上是pydb命令,而不是gdb命令。看到答案的评论,我后来发现,对于pydb,命令delete
不带任何参数删除所有的断点。要禁用所有的断点,您必须修改gdb.py并查看下面的注释。
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