gdb条件断点

Posted phoenix tree

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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在决定要不要断住前会去检查这些值,这些值可以是栈变量也可以是全局变量。

 



以上是关于gdb条件断点的主要内容,如果未能解决你的问题,请参考以下文章

关于条件断点的奇怪 gdb 行为(a && b 不等于 b && a)

在x64dbg中设置条件断点

Linux gdb调试工具应用详解

Linux gdb调试工具应用详解

c++ builder6 断点失效

gdb调试