Отладка с исходниками .NET Framework в VS 2005 или краткое руководство по NetMassDownloader

Многие знают, что Microsoft открыла существенную часть исходного кода .NET Framework 2.0. Автоматическое скачивание исходников и отладочных файлов из интернета стало доступно с VS 2008 (здесь можно прочитать подробнее) Однако воспользоваться удобством отладки с исходным кодом можно и на VS 2005. Kerem Kusmezer и John Robbins написали приложение, которое скачивает на вашу машину все исходники и файлы для отладки для нужных вам сборок .NET 2.0. (Для справки: Джон Роббинс – известный эксперт в области отладки приложений и автор большого количества книг на эту тему под Windows и .NET, второго чела не знаю :)). Этой утилитой удобно пользоваться и при работе на VS 2008, поскольку она автоматически скачивает все исходники и файлы отладки, и затем вам не потребуется постоянный коннект с интернетом при отладке.

Итак, ближе к делу. Называется утилита NetMassDownloader, а скачать ее можно здесь.

Далее: краткая инструкция, как скачать исходники .NET 2.0. и файлы отладки, как настроить 2005 студию и пару советов от меня. Описание от авторов, как работать с утилитой, можно найти на CodePlex (на странице загрузки NetMassDownloader) или на блоге Джеффри Роббинса).

Чтобы скачать исходники и отладочные файлы, запустите NetMassDownloader со следующими параметрами:

NetMassDownloader.exe –d C:\Windows\Microsoft.NET\Framework\v2.0.50727 –output c:\.NETSource

Как можно догадаться из параметров, C:\Windows\Microsoft.NET\Framework\v2.0.50727 – это путь, где установлены библиотеки фреймворка, а c:\.NETSource – путь, куда надо сохранить исходники и файлы отладки.

После того, как исходники скачаны (у меня их размер составил около 130Mb, так что наберитесь терпения), можно перейти к настройке студии. В окне Options (Tools -> Options) найдите узел Debugging, раскройте его и откройте свойства узла Symbols. В списке Symbol file (.pdb) locations добавьте каталог, куда были скачаны исходники. Пример того, как это сделано у меня, на рисунке ниже.

Далее, в том же узле Debugging откройте свойства узла General и снимите флаг с опции Require source files to exactly match the original version (см. рисунок ниже).

Если вы ранее уже скачивали pdb-файлы фреймворка, то их надо удалить, т.к. есть вероятность, что он возьмет их, а не те, что вы скачали при помощи NetMassDownloader.

Чтобы проверить, всё ли у вас работает, создайте новый проект, например, WindowsApplication, в конструкторе формы поставьте брейкпоинт (до вызова InitializeComponent) и запускайте отладку. Как только отладчик остановится на конструкторе вашей формы, нажимайте F11. Затем появится диалог, чтобы вы указали, где находится код файла Form.cs. В моем случае это следующий путь:

c:\.NetSource\RedBits\ndp\fx\src\WinForms\Managed\System\WinForms\Form.cs

После этого у вас в IDE должен открыться исходный код класса Form.cs.

В дальнейшем, для этого сеанса работы студия будет автоматически находить исходники. Если вас напрягает искать первый файл с исходником, то можно каталог исходников добавить в свойства проекта:

Ну вот и все, легкой вам отладки!

Комментарии

aaz написал(а)…
Спасибо.
Eugene Stanovoy написал(а)…
Привет, Андрей!
Хотелось бы обратить внимание на следующее:
1. Если скопировать приведенный пример для закачки исходников и отладочных файлов из брайзера в коммандую строку и запустить:
NetMassDownloader.exe –d C:\Windows\Microsoft.NET\Framework\v2.0.50727 –output c:\.NETSource
то NetMassDownloader не сможет распарсить '-'(тире), поэтому рекомендую после копирования удалить все тире (а их 2) и набрать их заново на клавиатуре.
2. Для того чтобы все это заработало необходимо обязательно снять галочку Tools\Options\Debbuging\Enadle Just My Code (Managed only)

Популярные сообщения из этого блога

Команды docker save/load, docker export/import – в чем отличие, как и когда ими пользоваться

Как узнать, кто заблокировал файл или папку

Эрик Гамма переходит на работу в Майкрософт