Ahm*_*aid 7 debugging conditional-breakpoint visual-studio
当我在VS2005中使用条件断点而不是使用临时代码来检查特定条件时,我注意到它需要更多时间并且执行速度会降低!! 你知道为什么吗?以及如何解决这个问题?
〔实施例:
    int sequence = atoi(m_SequenceNumber.GetAscii());
    if( sequence == 392914)//temporary code to check to step into code
    {
        int x = 0;//I put breakpoint here
    }
之前的代码将比我使用条件断点(sequence == 392914)更快地执行
使用内存观察点比条件断点更好(如果可能)。条件断点(正如其他人指出的那样)必须在每次执行指针经过该点时运行额外的代码,以确定它是否会中断 - 显然这需要额外的时间。某种类型的内存观察点可以使用某些特殊的硬件寄存器 - 您可以设置多少个可以加速的观察点是有限制的,但如果您可以使用它们,则几乎没有速度损失。
使用断点窗口设置内存观察点。您不是将其设置在一行代码上,而是设置在内存中的一个地址上。这表明了明显的限制,它仅适用于您实际可以获取地址的内容,例如全局变量和动态分配的内存区域(使用new等)。您可以观看的内存量是有限的(根据 CPU,我认为您可能会分配或多或少的特殊寄存器)。
我现在实际上并没有坐在VS前面,但粗略地说,你右键单击断点窗口并选择“新数据断点”之类的东西。然后输入内存的地址和大小(以字节为单位)。每当值发生变化时,您的观察点就会触发。这对于解决内存损坏问题特别有用。
| 归档时间: | 
 | 
| 查看次数: | 1414 次 | 
| 最近记录: |