我有两个循环,一个是嵌套的。这段代码只是在内存中移动数据块。当我设置断点来捕获不正确的地址时,它几乎停止循环并且开始运行非常慢(> 1 分钟)。我尝试将地址值存储在变量中,然后在断点中比较它们: ad1 != ad2 || ad3!= ad4。但它仍然会减慢代码速度,并且由于某种原因列表大小会变成一个巨大的值。当我关闭断点时,一切正常。
有什么问题吗?
条件断点在时间关键的代码中代价高昂。我建议你将签入代码移到断点之外,并将断点设置在 if 内部。
所以:
if (ad1 != ad2){
// Statement on which you break
}
该语句可以是 printf,因此它不会被优化。