如何在gdb的多个断点列表中删除断点?

5
我已经在某个文件的特定行设置了断点,由于存在多个这样的文件,这导致GDB创建了多个断点。
(gdb) b drv.c:2145
Breakpoint 1 at 0xa8b8172: drv.c:2145. (3 locations)


(gdb) info b
Num     Type           Disp Enb Address    What
1       breakpoint     keep y   <MULTIPLE>
1.1                         y     0x0a8b8172 in soc_property_ci_get_str at /lspace/seb/broadcom/src/soc/common/drv.c:2145
1.2                         y     0x0a8b81d8 in soc_property_ci_get_str at /lspace/seb/broadcom/src/soc/common/drv.c:2145
1.3                         y     0x0aaa364d in soc_dpp_info_config_common_tm at /lspace/seb/broadcom/src/soc/dpp/drv.c:2145

有没有一种方法可以从多个断点列表中删除断点? 尝试使用断点的索引进行删除时,会出现错误。
(gdb) d 1.1
warning: bad breakpoint number at or near '1.1'

@H.S. 这将清除所有断点。 - manish ma
1个回答

7
有没有一种方法可以从多个断点列表中删除断点?
不行,但是您可以使用“disable”命令禁用具有多个位置的断点中的单个断点位置。
(gdb) disable 1.1

请参考文档
无法删除断点中的单个位置。但是,可以通过将“断点号.位置号”作为参数传递给“enable”和“disable”命令来单独启用或禁用每个位置。还可以使用“断点号.位置号1-位置号2”的形式启用和禁用一系列位置编号,这些位置编号按增加顺序排列,此时GDB会作用于范围内的所有位置(包括两端)。禁用或启用父断点(请参见“禁用”)会影响属于该断点的所有位置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接