Отладка с исходниками .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.
В дальнейшем, для этого сеанса работы студия будет автоматически находить исходники. Если вас напрягает искать первый файл с исходником, то можно каталог исходников добавить в свойства проекта:
Ну вот и все, легкой вам отладки!
Итак, ближе к делу. Называется утилита 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.
В дальнейшем, для этого сеанса работы студия будет автоматически находить исходники. Если вас напрягает искать первый файл с исходником, то можно каталог исходников добавить в свойства проекта:
Ну вот и все, легкой вам отладки!
Комментарии
Хотелось бы обратить внимание на следующее:
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)