День семьдесят восьмой. #TipsAndTricks
Отладка в Visual Studio. Малоизвестные трюки
2. Прерывание при смене значения
У вас бывали ситуации при отладке, когда вы смотрите на значение свойства в одной точке прерывания, а при переходе к другой точке, значение внезапно меняется? Можно поставить прерывание в мутаторе (
1. В точке останова с интересующим экземпляром, щёлкните правой кнопкой на объект и выберите "
2. Перейдите в мутатор нужного вам свойства и добавьте условие прерывания "
3. Продолжите отладку (
4. В стеке вызовов (
Замечание: Object ID ссылается на адрес в памяти, поэтому он изменяется в каждой сессии отладки. Поэтому вам придётся пересоздавать object ID каждый раз. Обработчик ($1) не изменится, поэтому точку останова можно оставить как есть.
Отладка в Visual Studio. Малоизвестные трюки
2. Прерывание при смене значения
У вас бывали ситуации при отладке, когда вы смотрите на значение свойства в одной точке прерывания, а при переходе к другой точке, значение внезапно меняется? Можно поставить прерывание в мутаторе (
set
) свойства класса, но тогда оно будет возникать для всех экземпляров этого типа. А вам нужен только один проблемный экземпляр. Вы можете использовать Object ID
и условные прерывания, чтобы сузить проблемную область.1. В точке останова с интересующим экземпляром, щёлкните правой кнопкой на объект и выберите "
Make Object ID
". Это даст вам обработчик объекта по ссылке "$1
".2. Перейдите в мутатор нужного вам свойства и добавьте условие прерывания "
this == $1
".3. Продолжите отладку (
F5
), и теперь она остановится при изменении свойства этого экземпляра.4. В стеке вызовов (
Call Stack
) нажмите дважды на предпоследний пункт. Это перенесёт вас в строку кода, изменяющую значение свойства выбранного вами экземпляра.Замечание: Object ID ссылается на адрес в памяти, поэтому он изменяется в каждой сессии отладки. Поэтому вам придётся пересоздавать object ID каждый раз. Обработчик ($1) не изменится, поэтому точку останова можно оставить как есть.