Я не думаю, что можно отслеживать, где возникает значение, как я думаю, вы спросили.
Однако вы можете установить «точки наблюдения поля», которые в основном являются выражениями типа break when x = "the dog runs"
.Когда я использовал их до того, как программа будет работать очень и очень медленно.
Подробные сведения о том, как его установить, см. Здесь: Интеллектуальные точки останова .
Другой способ - запуститьв верхней части того, где вы думаете, значение устанавливается на то, что вы хотите. Перешагните каждый метод, пока не увидите, где значение установлено на то, что вы ищете.Затем повторите процесс внутри метода, который, как вы видели, изменился (т.е. на этот раз шаг в метод, в котором значение изменилось).
В этом "методе второго уровня" вы, вероятно, увидите другой вызов, который задает искомое значение.Поэтому повторяйте процесс снова, пока не найдете системный вызов, который устанавливает значение (например, чтение из базы данных или совпадение с регулярным выражением и т. Д.).
Звучит скучно, но это метод "разделяй и властвуй"форма, которая устраняет огромный кусок кода, который не устанавливает значение, которое вы ищете в вызове одного метода, который делает.Затем вы разделяете и побеждаете внутреннюю работу этого метода.На практике это не займет много времени, прежде чем вы сузите его.