GDB:条件断点:判断相等时使用一个等号还是两个等号
这其实是一个特别简单的问题,网上不同的人分享的也不一样,有的例子用“=”,有的例子用“==”。
用最简单的helloworld来实验一下:
#include <stdio.h>
void helloworld(int i) {
printf("hello world %d \n", i);
}
// 主函数
int main() {
int i;
for(i=0; i< 10; i++) {
helloworld(i);
}
return 0;
}
编译一下:
# gcc -g -o helloworld helloworld.c
- 使用两个等号“==”
(1)在shell下执行 # gdb ./helloworld
(2)在第12行增加断点1,条件为 if i==2,使用两个等号
(3)执行run,在断点1停住了,用p命令打印i的值为2。说明判断相等时可以使用两个等号。
- 使用一个等号“=”
(1)在shell下执行 # gdb ./helloworld
(2)在第12行增加断点1,条件为if i=5,使用一个等号
(3)执行run,在断点1停住了,用p命令打印i的值为5。说明判断相等时可以使用两个等号。
结论:GDB:条件断点:判断相等可以使用一个等号或两个等号!
参考
Set Breaks (Debugging with GDB)
欢迎点赞关注收藏!