Лучше (если возможно) использовать точку наблюдения памяти, чем условную точку останова. Условная точка останова (как указывали другие специалисты) должна запускать дополнительный код каждый раз, когда указатель выполнения проходит мимо этой точки, чтобы определить, не сломается или нет - очевидно, это занимает дополнительное время. Контрольная точка памяти определенного типа позволяет использовать определенные специальные аппаратные регистры - существует ограничение на количество точек наблюдения, которые вы можете установить, которые могут ускориться, но если вы можете их использовать, почти нет штрафа за скорость.
Часовой пояс памяти установлен с использованием окна точки останова. Вы не устанавливаете его на строку кода, а скорее на адрес в памяти. Это говорит о очевидном ограничении, оно работает только для вещей, на которые вы действительно можете принять адрес, например глобальных переменных и динамически распределенных областей памяти (с использованием new
и т. Д.). Вы ограничены тем, сколько памяти вам разрешено смотреть (на основе процессора, я думаю, вы, вероятно, получите более или менее специальные регистры).
Я фактически не сижу перед VS прямо сейчас, но, грубо говоря, вы щелкаете правой кнопкой мыши в окне точек останова и выбираете что-то вроде «новой точки останова данных». Затем вы вводите адрес памяти и размер в байтах. Всякий раз, когда изменяется значение, ваша точка наблюдения срабатывает. Это особенно полезно для выяснения проблем с повреждением памяти.
это убивает меня в vs2010. довольно тяжелый цикл, но обычно завершается за 1 секунду .. с условным, он никогда не завершается. –