воскресенье, 15 февраля 2009 г.

Создание идентификатора объекта в окнах семейства Watch в VS2005/2008

В отладчике Visual Studio 2005/2008 при работе с языком программирования C# появилась новая замечательная возможность: создание идентификатора объекта. Если в одном из окон семейства Watch (имеются ввиду окна Locals, Autos, Quick Watch, Watch1-5, DataTips) нажать правую кнопку, то в контекстном меню будет присутствовать один интересный пункт: Make Object ID - создание идентификатора объекта.

При создании идентификатора объекта, создается идентификатор, который отображается в столбце Value окна Watch. После создания идентификатора, вы можете добавить новое значение в таблицу Watch с именем '#1', '#2', ... '#n'.

Идентификатор объекта позволяет управляемому отладчику следить за объектом в любом месте кучи, независимо от контекста. Таким образом, если вам необходимо наблюдать локальную переменную из метода на двадцать элементов выше стека, создайте идентификатор объекта для этого объекта, и вы будете видеть реальное значение переменной независимо от того, где вы находитесь. Можно также создать идентификатор объекта для объекта в других потоках. Более того, вы увидите этот объект не зависимо от того, в каком поколении сборщика мусора он находится, а если он будет собран сборщиком мусора, то представление для этого идентификатора объекта станет недоступным. К сожалению нельзя добавить никакой дополнительной информации к идентификатору объекта и придется помнить, что означает порядковый номер каждого идентификатора, но т.к. слишком большое количество подобных объектов едва ли понадобиться, то и слишком большой проблемой это не будет.

1 комментарий:

  1. Кайф! Прочитал и записял в трусы! Просто сила, Серега! Большой зачет!

    ОтветитьУдалить