Можно ли выполнить этот отладочный код, когда программа приостановлена 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 3

2 ответа:

Вы должны иметь возможность использовать окно немедленного режима в IDE для выполнения подобных команд, но данные должны быть доступны в текущей области отладчика.

Нет, вы не можете сделать это непосредственно из IDE. К сожалению, самый простой способ обойти это-прекратить отладку, написать цикл внутри открытого статического метода, который возвращает искомый объект, повторно скомпилировать и запустить, а затем вызвать этот открытый статический метод из окна немедленного или контрольного.

Еще один более непосредственный (но раздражающий) трюк заключается в том, чтобы написать "? myObjects " в окне немедленного копирования, вставить результат в блокнот и использовать текстовый поиск (Ctrl+F) в блокноте, чтобы найти свой объект.