【发布时间】:2016-08-19 14:14:52
【问题描述】:
使用 gdb,我们可以禁用断点,如 ftp://ftp.gnu.org/old-gnu/Manuals/gdb/html_node/gdb_32.html 中所述。在文档上,要禁用所有断点,它说只提供disalbe 而没有断点列表。但在我的 ddd(data-display-debuger) 中,它不起作用。我该怎么做?或者我如何指定范围? (我试过 1-10 还是不行)。
编辑:我使用 DDD 使用命令ddd -pydb prog.py arg1 arg2.. 进行 python 调试,所以它实际上是 pydb 命令,而不是 gdb 命令。答案见cmets,后来发现对于pydb来说,不带任何参数的命令delete会删除所有的断点。要禁用所有断点,您必须修改 gdb.py 并查看下面的 cmets。
【问题讨论】:
-
我看到
disable 1 2 3 4 5 6 7 8 9有效。 -
它适用于我(ddd 3.3.12,gdb 7.7.1)。你运行的是什么版本?
-
GNU DDD 3.3.12 (x86_64-redhat-linux-gnu) 和 GNU gdb (GDB) Red Hat Enterprise Linux (7.2-83.el6)。可能是 GDB 版本差异?
-
我看看我有没有这些版本。如果你再次输入
info b,然后是disable,然后是info b,输出有什么不同吗?在Enb列中甚至没有一个断点有n? -
哦。你没有使用 gdb,你使用的是 pydb。 pydb 的命令集受到 gdb 的启发,但它们并不相同。但是 pydb 很容易修改,因为它附带了所有的源代码,都是用 python 编写的。在
gdb.py中查找do_disable并将self.errmsg('No breakpoint number given.')更改为for bp in bdb.Breakpoint.bpbynumber: bp.disable()。
标签: debugging gdb breakpoints ddd-debugger