我正在调试一个C / C ++程序,我想根据多个变量设置一个具有条件的断点。
break foo.cpp:60 if(bar == 3&& i == 5)
这似乎不起作用,因为只要它碰到foo.cpp:60就会停止,而不是每当两个条件都匹配时(它甚至不匹配其中一个条件)。有没有一种简单的方法来做我想要实现的目标?
编辑:bar我不是本机C类型,它们是强类型的。
break foo.cpp:60 if((A)bar == 3&&(B)i == 5)
答案 0 :(得分:1)
解析条件语句并将其结果放入其自己的BOOL变量中,然后设置断点语句以评估单个变量。这使表格与GDB中显示的示例完全一致。文档:
例如:
BOOL x = FALSE;
x = ((bar == 3) && (i == 5));
(gdb) break foo.cpp:60 if x
答案 1 :(得分:0)
这适合我。
(gdb) b dump_route_info if (strncmp(route->rt_key.prefix, "192.168.0.2", 15) == 0) && route->rt_key.mask == 32