Невозможно загрузить символы или сломать основные сборки, загрузка параметра Символы недоступна - PullRequest
6 голосов
/ 06 марта 2011

Я установил параметры «Использовать сервер символов» и, чтобы быть уверенным, что правильные символы были загружены, я удалил кэш символов.При запуске приложения ASP.NET я увидел всплывающее окно, сообщающее, что загружаются символы.

Я отключил «Просто мой код» и включил «Включить пошаговое выполнение исходного кода .NET Framework».В прошлом этого было достаточно, чтобы иметь возможность обходить библиотеки кода .NET.

Когда я перестаю использовать IntelliTrace, весь неиспользуемый код в стеке вызовов становится серым.Проверяя окно модулей, оно говорит, например, для System.Web.Dll и mscorlib «Символы не загружены» для System..dll и System.Xml.dll, оно говорит «Символы загружены».

Обычно вы можете щелкнуть правой кнопкой мыши и выбрать «Загрузить символы», но это отображается серым цветом.Любая идея, чтобы это снова заработало?

http://www.undermyhat.org/blog/wp-content/uploads/2011/03/Grayed-out-Load-Symbols.png

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Ответ Ритча указал мне правильное направление, но это не было решением. Вот что происходит:

Когда вы нажимаете Call Stack в историческом событии IntelliTrace, это покажет трассировку стека. Обычно в трассировке стека вы можете щелкнуть правой кнопкой мыши и загрузить символы, однако:

  • В историческом событии IntelliTrace это всегда будет отключено. Перерыв нормально в вашем коде, и это будет работать;
  • Вы даже не можете загружать символы из представления модулей, когда находитесь в историческом событии (также выделено серым цветом);
  • Когда модуль указан как «всегда загружать вручную» (метко названный «По умолчанию», см. Скриншот в посте Ритча), он не будет автоматически загружен. Когда вы загрузите его вручную, все равно не сможете войти в код фреймворка (по крайней мере, для меня это было невозможно, возможно, ошибка VS 2010). Чтобы решить это:
    • выберите «Всегда загружать автоматически» (примечание: вы не увидите галочку, обозначающую, что вы выбрали это!) И
    • прервать выполнение и
    • (возможно) остановить разработку веб-сервера (в некоторых случаях это помогло мне)
    • снова начать отладку.

Если честно, я нахожу это относительно неясным поведение Visual Studio. В прошлом мне, видимо, повезло, что настройки были установлены правильно. Это не «это просто работает», но только если вы тщательно пройдете правильную процедуру, это сработает, как и ожидалось.

2 голосов
/ 06 марта 2011

Поскольку загрузка символов может быть slllloowww, и вы не всегда интересуетесь каждой таблицей символов, есть возможность загрузить конкретную таблицу вручную.Причина, по которой они отображаются серым цветом, заключается в том, что вы загружаете их автоматически.Вот снимок экрана с ручной настройкой и включенной опцией. Load Auto

Чтобы войти в это состояние, я настроил свои Настройки символов для загрузки всех символов, кроме, и добавил NHibernate в список.Когда я ломаюсь в NHibernate, символы отображаются серым цветом и могут быть загружены вручную: NHibernate View

И тогда у меня есть возможность загрузить их: enter image description here

...