忽略斷點

例子

#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


书籍推荐