条件断点对代码运行有奇怪的影响

问题描述 投票:0回答:1

我有两个循环,一个是嵌套的。这段代码只是在内存中移动数据块。当我设置断点来捕获不正确的地址时,它几乎停止循环并且开始运行非常慢(> 1 分钟)。我尝试将地址值存储在变量中,然后在断点中比较它们: ad1 != ad2 || ad3!= ad4。但它仍然会减慢代码速度,并且由于某种原因列表大小会变成一个巨大的值。当我关闭断点时,一切正常。

有什么问题吗?

visual-studio visual-c++ visual-studio-debugging
1个回答
0
投票

条件断点在时间关键的代码中代价高昂。我建议你将签入代码移到断点之外,并将断点设置在 if 内部。

所以:

if (ad1 != ad2){
    // Statement on which you break
}

该语句可以是 printf,因此它不会被优化。

© www.soinside.com 2019 - 2024. All rights reserved.