Как узнать, ЧТО или ВОЗ обращается к переменной в VS Debugger для C#?
Я отлаживаю существующую программу на C#. Есть, конечно, события, обработчики событий и т. Д. Моя проблема в том, что я не знаю, где и когда в программе обновляется эта конкретная переменная с именем X для цели вопроса.
Когда мы работали с эмуляторами и микропроцессорами, я мог видеть, какой код обращается к определенному адресу в памяти, но я не уверен, смогу ли я увидеть то же самое в отладчике C#.
3 ответа
Некоторые варианты:
Щелкните правой кнопкой мыши по переменной и выберите "Найти все ссылки"...
Выполните глобальное решение для поиска по всему тексту "x =" и "x =", чтобы найти везде, где что-то пытается его установить.
Вы действительно не можете сделать это для полей объектов, но вы можете сделать это для свойств (и вы обычно можете изменить код и обернуть поле в свойстве без внесения изменений в другой код!).
Я ответил на похожие вопросы о том, как вы можете установить точку останова для сгенерированного метода установки здесь, используя Oz Code:
Повторное обращение о достижении точки останова у установщика свойства
Я не совсем уверен, имеете ли вы в виду "какие потенциальные точки в моем коде могут достичь этой переменной?", Или если вы имеете в виду "у меня есть точка останова для этой переменной, но я не знаю, как она здесь появилась?".
Если это вопрос № 2, я бы посоветовал посмотреть на стек вызовов (Debug/Windows). Кроме того, если у вас есть несколько потоков или задач в миксе, убедитесь, что просмотр всех потоков (одно и то же меню отладки) и просмотр всех задач.
Надеюсь, это поможет!