Можно ли выполнить этот отладочный код, когда программа приостановлена in.NET IDE?
У меня есть пара массивных структур данных, которые вызывают проблемы в моем VB.NET применение. После того, как исключение будет выдано и приложение остановится, я хотел бы запустить некоторый код, например:
For Each o As MyClass In myObjects
If o.property = "value" Then debug.print(o.id)
Next
Для диагностики проблемы.
Проблема в том, что непосредственное окно не позволяет мне выполнять циклы, а коллекция myObjects
содержит слишком много объектов, чтобы я мог найти тот, который мне нужен вручную.
Как я могу найти этот объект, когда отладчик приостановлен? Это, или что-то подобное, возможное в среде .NET IDE?
2 ответа:
Вы должны иметь возможность использовать окно немедленного режима в IDE для выполнения подобных команд, но данные должны быть доступны в текущей области отладчика.
Нет, вы не можете сделать это непосредственно из IDE. К сожалению, самый простой способ обойти это-прекратить отладку, написать цикл внутри открытого статического метода, который возвращает искомый объект, повторно скомпилировать и запустить, а затем вызвать этот открытый статический метод из окна немедленного или контрольного.
Еще один более непосредственный (но раздражающий) трюк заключается в том, чтобы написать "
? myObjects
" в окне немедленного копирования, вставить результат в блокнот и использовать текстовый поиск (Ctrl+F) в блокноте, чтобы найти свой объект.