Обновление от 22 февраля 2013 г . : В записи Microsoft Connect есть примечание от Алока Ширама (менеджер программ, библиотеки базовых классов, .NET Framework) о том, что проблема должна быть решена. Запись Connect помечена как Решенная (фиксированная) :
Теперь эта проблема должна быть исправлена. Мы опубликовали обновление справочных источников. Сообщите нам, если проблема все еще не решена.
Полтора года.
Бонусные ссылки
Проголосуйте за исправление этой ошибки в Microsoft Connect .
Тема в Microsoft Social, которая идет уже полтора года, спрашивает, когда это будет исправлено .
Исходный вопрос
Как включить пошаговое выполнение исходного кода .NET framework в Visual Studio 2010?
Примечание . Этот вопрос является частью большого целого:
- .NET 2.0 WinForm: поддержка изменений DPI и шрифтов по умолчанию
- Элементы управления WinForms не масштабируются во время ScaleControl
- VS2010: Как включить «Включить степпинг исходного кода .NET Framework»?
- Visual Studio 2010 Professional: как получить доступ к окну модулей?
- Visual Studio 2010: Properties.Settings нарушены после перенацеливания проекта на .NET Framework 3.5
Visual Studio 2010 поставляется с новой функцией:
- Инструменты, Параметры, Отладка, Общие, Включить пошаговое выполнение исходного кода .NET Framework
Следуя инструкциям на странице MSDN Как выполнить отладку источника .NET Framework :
Включение отладки исходного кода .NET Framework
В меню " Сервис " выберите " Параметры" .
В диалоговом окне « Параметры » щелкните категорию « Отладка ».
В поле Общие установите следующие флажки:
- Включить пошаговое выполнение исходного кода .NET Framework
- Включить поддержку исходного сервера
Я сделаю это:
Примечание : вы заметите, как указано на странице MSDN, и, как я заметил, установка флажка «Включить пошаговое выполнение исходного кода .NET Framework» автоматически снимает флажок ** Включить только мой код (только для управляемого кода). Я также включил диагностические сообщения поддержки исходного сервера.
Включение этих параметров автоматически устанавливает для меня место загрузки кеша символов:
Примечание . Запись Microsoft Symbol Server уже присутствует (и не может быть удалена).
На странице MSDN говорится о загрузке символов:
Чтобы загрузить символы Framework с помощью окна модулей
В окне " Модули" щелкните правой кнопкой мыши модуль, для которого не загружены символы. Вы можете определить, загружены ли символы, по столбцу « Статус символов» .
Наведите указатель мыши на « Загрузить символы из» и щелкните « Серверы символов Microsoft», чтобы загрузить символы с общедоступного сервера символов Microsoft, или «Путь к символам» для загрузки из каталога, в котором ранее были сохранены символы.
Я пробую это:
а затем загружаются все символы:
Я сижу на точке останова, которая вот-вот вызовет код .NET framework:
protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
base.ScaleControl(factor, specified);
При нажатии F11отладчик просто переходит к следующей строке:
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:
За исключением того, что это не работает: Visual Studio сообщает мне, что источник недоступен:
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Если я переключаюсь в режим дизассемблирования перед тем, как перейти к .NET-коду ( Debug -> Windows -> Disassembly ), я могу увидеть call
в коде .NET:
И когда я это делаю, я заканчиваю отладку дизассемблера System.Windows.Forms.ScaleControl
:
Это не то же самое, и не то же самое, что возможность войти в исходный код .NET Framework.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Настроенный путь кэша символов на моем компьютере действительно содержит файлы кэша символов:
Таким образом, он загружает 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.
Так ему будет найти свои символы, но утверждает , что он не мог их найти.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Парень из Microsoft Italy предлагает отключить Требовать, чтобы исходные файлы точно соответствовали исходной версии :
Это не помогло.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Было высказано предположение, что в исходном сервере Microsoft для .NET Framework 4.0 есть ошибка . Следуя этому предложению, я переключил проект на целевой .NET Framework 3.5 :
Это не помогло.
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Кто-то где-то праздно гадал, не использовал ли другой человек, столкнувшийся с такой же проблемой, 64-битную версию отладчика . Сейчас нет такой вещи, как 64-битная версия Visual Studio, но я попытался переключить свой проект с AnyCPU на x86 (он был JITed на x64), на случай, если Microsoft не поддерживает 64-битные процессоры:
Это не помогло:
Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'
Как включить пошаговое выполнение исходного кода .NET Framework в Visual Studio 2010?
Смотрите также
- Настройка Visual Studio для отладки исходного кода .NET Framework
- Невозможно отладить код платформы .NET в VS2010
- Пошаговое выполнение исходного кода .NET framework не работает, несмотря на установленные параметры
- Настройка Visual Studio 2010 для перехода в исходный код Microsoft .NET
- Visual Studio 2008 SP1 отладка исходного кода .NET Framework
- Окно No Debug> Modules в Visual Studio 2008 версии 9.0.21022.8 RTM