Можно ли выполнить этот код отладки, когда программа приостановлена ​​в .NET IDE? - PullRequest
3 голосов
/ 30 апреля 2011

У меня есть пара массивных структур данных, которые вызывают проблемы в моем приложении VB.NET.После того, как возникнет исключение и приложение приостановится, я хотел бы запустить такой код, как:

For Each o As MyClass In myObjects
  If o.property = "value" Then debug.print(o.id)
Next

для диагностики проблемы.

Проблема в том, что непосредственное окно не будетпозвольте мне выполнить циклы, и коллекция myObjects содержит слишком много объектов, чтобы я мог вручную найти нужный мне оскорбительный.

Как найти этот объект, пока отладчик приостановлен?Возможно ли это или что-то подобное в .NET IDE?

Ответы [ 2 ]

6 голосов
/ 30 апреля 2011

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

2 голосов
/ 30 апреля 2011

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

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

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