Обновление от 22 февраля 2013 г. : В записи Microsoft Connect есть заметка от Алока Шрирама (руководитель программы, библиотеки базовых классов, .NET Framework) о том, что теперь проблема должна быть решена.Запись Connect помечается как Решено (Исправлено) :
Эта проблема должна быть исправлена.Мы опубликовали обновление для справочных источников.Пожалуйста, дайте нам знать, если ваша проблема все еще не решена.
Полтора года.
Бонусные ссылки
Оригинальный вопрос
Как включить пошаговое изменение исходного кода .NET Framework в Visual Studio 2010?
Примечание : Этот вопрос состоит из одного вопросабольшее целое:
Visual Studio 2010 comс новой функцией:
- Инструменты, Параметры, Отладка, Общие, Включить пошаговое выполнение исходного кода .NET Framework
![Screenshot of options menu](https://i.stack.imgur.com/8Gu2K.png)
Следуя инструкциям на странице MSDN Как выполнить отладку .NET Framework Source :
Включение отладки исходного кода .NET Framework
В меню Инструменты нажмите Параметры .
В диалоговом окне Параметры нажмите Отладка категория.
В поле Общие установите следующие флажки:
- Включить .NET Frameworkшаг источника
- Включить поддержку исходного сервера
Я делаю это:
![Screenshot of options menu, highlighting the relevant options selected](https://i.stack.imgur.com/1iXjt.png)
Примечание : Как вы заметили на странице MSDN, и, как я заметил, при проверке Включить пошаговое выполнение исходного кода .NET Framework будет автоматически сниматься флажок ** Включить только мой код (только управляемый).Я также включил диагностические сообщения поддержки исходного сервера.
Включение этих параметров автоматически устанавливает для меня место загрузки кэша символов:
![Screenshot of options menu, showing cache directory (highlighted)](https://i.stack.imgur.com/VwhtM.png)
Примечание : запись Microsoft Symbol Server уже существует (и ее нельзя удалить).
На странице MSDN сказано загрузить символы:
Чтобы загрузить символы Framework с помощью окна Модули
В окне Модули щелкните правой кнопкой мыши модуль, для которого символы не загружены.Чтобы узнать, загружены символы или нет, просмотрите столбец Состояние символов .
Укажите Загрузить символы из и нажмите Серверы Microsoft Symbol для загрузки символов с сервера общедоступных символов Microsoft или Symbol Path для загрузки из каталога, в котором вы ранее хранили символы.
Я пробую это:
![enter image description here](https://i.stack.imgur.com/6nCtS.png)
и затем все символы загружаются:
![Screenshot of modules window, as described above](https://i.stack.imgur.com/fk7Zm.png)
Я сидел наточка останова, которая собирается вызвать код платформы .NET:
![Screenshot of code, transcribed below](https://i.stack.imgur.com/LWA4Z.png)
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
Нажатие F11 заставляет отладчик просто перейти к следующей строке:
![Screenshot of code, transcribed below](https://i.stack.imgur.com/wA75K.png)
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
//Record the running scale factor used
this.scaleFactor = new SizeF(
this.scaleFactor.Width * factor.Width,
this.scaleFactor.Height * factor.Height);
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Я сижу на точке останова в моем коде. Я пытаюсь дважды щелкнуть дальше по функции в стеке вызовов. Это, я надеюсь, позволило бы мне перейти на код .NET:
![enter image description here](https://i.stack.imgur.com/P8Yts.png)
За исключением того, что это не работает: Visual Studio сообщает, что нет доступного источника:
![Screenshot of error message saying No Source Available](https://i.stack.imgur.com/7jt7z.png)
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Если я переключаюсь в представление дизассемблирования, прежде чем пытаться войти в код .NET ( Отладка -> Windows -> Разборка ), я вижу call
в код .NET:
![Screenshot of code](https://i.stack.imgur.com/LFiUp.png)
И когда я это делаю, я заканчиваю отладкой разборки System.Windows.Forms.ScaleControl
:
![Screenshot of disassembly window](https://i.stack.imgur.com/AdXWc.png)
Это не то же самое, что и возможность использовать источник в .NET Framework, или не так полезно, как возможность.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Настроенный путь кеширования символов на моем компьютере содержит файлы кеширования символов:
![Screenshot of folder listing](https://i.stack.imgur.com/7oShE.png)
Таким образом, он загружает pdb
файлы символов, но отказывается их использовать.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Леппи предложил мне проверить журнал Debug
(с открытым окном журнала отладки; в противном случае он ничего не регистрирует):
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Раньше в журнале я видел загрузку символов для System.Windows.Forms.dll
:
Loaded 'C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded.
![enter image description here](https://i.stack.imgur.com/MvyJJ.png)
Итак, находит мои символы, но утверждает, что не может их найти.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Парень из Microsoft Italy предлагает отключить Требовать, чтобы исходные файлы точно соответствовали исходной версии :
![Screenshot of options window](https://i.stack.imgur.com/adGuS.png)
Это не помогло.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Было высказано предположение, что существует ошибка с исходным сервером Microsoft для .NET Framework 4.0 . Следуя этому предложению, я переключил проект на цель .NET Framework 3.5 :
![enter image description here](https://i.stack.imgur.com/EjPKk.png)
Это не помогло.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Кто-то где-то лениво задавался вопросом, использует ли другой человек, испытывающий такую же проблему , 64-разрядную версию отладчика . Теперь нет такой вещи, как 64-разрядная версия Visual Studio, но я попытался переключить свой проект с AnyCPU на x86 (он был JITed на x64), в случае Microsoft не поддерживает 64-битные процессоры:
![enter image description here](https://i.stack.imgur.com/r826Q.png)
Это не исправило:
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
См. Также