1

使用 gdb,我们可以禁用断点,如ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.html中所述。在文档上,要禁用所有断点,它说只在disalbe没有断点列表的情况下给出。但在我的 ddd(data-display-debuger) 中,它不起作用。我该怎么做?或者我如何指定范围?(我尝试了 1-10 但没有用)。

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

4

1 回答 1

1

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

*** 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
于 2016-08-21T00:22:31.453 回答