gdb条件断点

1 通用格式

break file:line if condition

condition的格式:变量名 条件运算符 常量,比如 if  i == 3

2 例

#include <stdio.h>

int main(int argc, char* argv[])

{

    int i = 0;

    for (i = 1; i < 7; i++)

    {

        printf("%d\n", i);
    }

    return 0;
}

 

(gdb)break main.c:6 if i == 5

(gdb)c

1

2

3

4

Breakpoint 1, main() at main.c:6

6 printf("%d\n", i);

3 condition的来源

第一,在没有设置断点的条件的时候,当程序到达断点的时候,我们会得到一些变量和变量的一些值;

第二,我们可以利用这些变量和值构造条件,使得只有满足一定条件的时候,断点才能断住,很简单,gdb在决定要不要断住前会去检查这些值,这些值可以是栈变量也可以是全局变量。

 

posted @ 2018-01-15 22:22  PhoenixTree(梧桐树)  阅读(2617)  评论(0编辑  收藏  举报