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

时间:2019-01-29 09:01:22

标签: c gdb

我在某个file:line上设置了一个断点,并且由于存在多个此类文件,这导致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'

1 个答案:

答案 0 :(得分:2)

  

是否可以从多个断点列表中删除断点?

否,但是您可以使用disable命令在具有多个位置的断点中禁用单个断点位置:

(gdb) disable 1.1

请参见documentation

  

您不能从断点删除各个位置。然而,   每个位置都可以通过以下方式分别启用或禁用   breakpoint-number.location-number作为enable和   禁用命令。也可以启用和禁用一系列   location-number使用断点数和两个的位置   位置编号,以递增顺序,用连字符分隔,例如   breakpoint-number.location-number1-location-number2,在这种情况下为GDB   作用于范围内(包括该范围内)的所有位置。禁用或   启用父断点(请参见禁用)会影响所有   属于该断点的位置。