忽略斷點

例子

#include <stdio.h>

int main(void)
{
        int i = 0;
        int sum = 0;

        for (i = 1; i <= 200; i++)
        {
            sum += i;
        }

        printf("%d\n", sum);
        return 0;
}

技巧

在設置斷點以後,可以忽略斷點,命令是“ignore bnum count”:意思是接下來count次編號為bnum的斷點觸發都不會讓程序中斷,只有第count + 1次斷點觸發才會讓程序中斷。以上面程序為例:

(gdb) b 10
Breakpoint 1 at 0x4004e3: file a.c, line 10.
(gdb) ignore 1 5
Will ignore next 5 crossings of breakpoint 1.
(gdb) r
Starting program: /data2/home/nanxiao/a

Breakpoint 1, main () at a.c:10
10                                      sum += i;
(gdb) p i
$1 = 6

可以看到設定忽略斷點前5次觸發後,第一次斷點斷住時,打印i的值是6。如果想讓斷點下次就生效,可以將count置為0:“ignore 1 0”。

詳情參見gdb手冊

貢獻者

nanxiao