Отладка с исходниками .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 – в чем отличие, как и когда ими пользоваться

Виртуальная машина QEMU с Linux (Ubuntu) на Windows 10