Visual Studio символы загрузки


166

Я работаю над проектом ColdFusion некоторое время, и Visual Studio начал вести себя как минимум странно.

Я заметил, что когда я начал отладку, он создал проект, начал развертывание, и развертывание закончилось, и он начал загружать символы для моего проекта.

Но это было очень медленно, и я не знаю, почему он начал делать этот шаг. Что я мог сделать?

Необходим ли этот шаг загрузки символа? Как я могу отключить это?

В диалоге Сервис -> Параметры -> Отладка -> Символы не добавляется местоположение файла символов (.pdb). И я указал в каталоге отладки моего проекта на поле ниже, и я установил флажок «Искать в каталоге выше, только когда символы ....». Как мне настроить этот диалог, чтобы отключить загрузку символов?

Я посмотрел в окне Модули, какие символы загружены, но он мне ничего не говорит. В чем проблема?

введите описание изображения здесь


3
Я попробовал каждый ответ в теме без удачи.
Йохан Ларссон

3
Обычно символы должны кэшироваться, и их загрузка может занять совсем немного времени; единственный раз, когда вы заметите, что загрузка символов происходит медленно, это если символы загружаются с серверов символов Microsoft, что очень очень медленно, например (не всегда очень медленно, но медленно тем не менее), поэтому один хороший способ попытаться решить эту проблему - удалить кэш символов, просто перейдите в «Отладка -> Параметры -> Отладка -> Символы» и щелкните пустой кэш символов, если это не работает Может быть, это еще одна проблема, надеюсь, это будет полезно для кого-то, поскольку вопросу уже 3 года (:
Даниил

Ответы:


266

Отладка -> Удалить все точки останова ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) После этого вы можете использовать их снова, но сделайте это один раз. Это также удалит некоторые «недействительные» точки останова, и тогда загрузка символов снова будет быстрой. Я преследовал эту проблему в течение нескольких дней :(.


4
Пользователи Visual Web Developer 2010 Express могут нажать клавиши CTRL + SHIFT + F9 и запрос «Удалить все точки останова?». будет появляться. Вам нужна, по крайней мере, одна активная точка останова (не уверен, если проблемные фоновые точки останова отсчитывают). Спасибо! Гораздо быстрее сейчас ...
Cymen

Какая звезда! Огромное спасибо.
user489998

Действительно, это работает! Невероятно! Кто-нибудь уже сообщал об этой очевидной ошибке в Microsoft?
real_yggdrasil

Ваше начало, это сводит меня с ума в течение нескольких дней. Бесконечно благодарен!
markpcasey

Ну, это было неожиданно! Это действительно сработало. Вы спасли мой день, большое спасибо!
тматущек

132

Другая причина медленной загрузки - если вы отключили «Включить только мой код» в параметрах отладки. Чтобы включить это, перейдите по ссылке:

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

Убедитесь, что это проверено.


Параметр «Просто мой код» недоступен в диалоговом окне «Параметры» в некоторых версиях Express для Visual Studio (хотя и в Visual C # 2010 Express), но его можно изменить другими способами: как отключить «Просто мой код» в Visual Basic 2005 Express? ,
Питер Мортенсен

3
Это тот, который исправил это для меня ... не ответ "Удалить все точки останова".
Марк Бриттингем

Это примерно худший вариант в Visual Studio. Гораздо лучше просто отключить загрузку символов, чтобы вы могли видеть броски исключений и кадры стека, в которых просто отсутствуют символы. (Просто какое-то трудно читаемое число вместо имени). Конечно, я обычно работаю над кодом сайта, поэтому подо мной много IIS, которые могут потерпеть неудачу. Обычно просто отменяет выбор серверов символов Microsoft (и всех удаленных) в качестве источника данных.
ebyrob

Ты спас мне полдня ...! : D
Вайбхав Дешмух

43

Настроить в Инструменты, Параметры, Отладка, Символы.

Вы можете посмотреть окно вывода (просмотр, вывод), чтобы увидеть, что он обычно делает. Если он действительно медленный, это, вероятно, означает, что он загружает сервер символов, возможно, Microsoft, чтобы загрузить недостающие символы. Для каждого файла, который он не может найти при каждом запуске, требуется три HTTP-нажатия - иногда это можно увидеть в строке состояния внизу или, например, в Fiddler. Вы можете видеть, какие модули загружали символы в Debug, Windows, Modules во время отладки.

Символы означают, что вы получаете полезную информацию трассировки стека в сторонние и системные сборки. Вы определенно нуждаетесь в них для своего собственного кода, но я думаю, что они загружаются независимо. Лучше всего отключить любые нелокальные источники символов в этом меню, и, если вы загружаете много символов для системных сборок, в которые вам не нужно отлаживать, вы можете временно отключить их загрузку, чтобы ускорить запуск отладки - но они часто полезны для загрузки.


3
В диалоге Сервис -> Параметры -> Отладка -> Символы не добавляется местоположение файла символов (.pdb). И я указал в каталоге отладки моего проекта на поле ниже, и я установил флажок «Искать в каталоге выше, только когда символы ....». Я не знаю, как мне настроить этот диалог, чтобы отключить загрузку символов.
Арнольдино

1
Хм, тогда я не знаю. Вам нужно загрузить символы для вашего собственного кода, чтобы отладить его, поэтому я не думаю, что вы хотите полностью его отключить. Думаю, тогда я посмотрю в окно «Модули», чтобы увидеть, какие символы загружены, определиться, какие из них вам действительно нужны, а затем, возможно, удалить .pdbs из кэша символов для тех, которые вам не нужны?
Rup

1
Проверьте «использовать сервер символов Microsoft», запустите код один раз, и тогда все символы будут в кеше. Теперь вы можете снять флажок для повышения скорости.
Джон Ктехик

1
Отключение Microsoft Symbol Server в Сервис -> Параметры -> Отладка -> Символы исправили это для меня. Прежде чем я ждал 30 секунд для начала отладки. Теперь это всего лишь секунда или около того.
Майк Чемберлен

41

Просто была эта проблема.

Я исправил это, перейдя к:

Сервис -> Параметры -> Отладка -> Символы

Затем снимите отметку со всех нелокальных источников для местоположений файлов символов (.pdb)

например, серверы Microsoft Symbol и msdl.microsoft.com/download/symbols


23

Я столкнулся с подобной проблемой. В моем случае я установил _NT_SYMBOL_PATH для загрузки с серверов Microsoft для использования в WinDbg, и похоже, что когда установлено, Visual Studio будет использовать это без возможности игнорировать его. Удаление этой переменной среды решило мою проблему.


Это решило проблему и для меня (я полагаю, что небольшое количество голосов было связано с низким числом людей, которые установили эту переменную ...) Спасибо!
Аасмунд Элдхусет

Тоже самое. Я думал, что могу просто снять галочку с символов, но нет, env var должен быть удален / переименован.
Codekaizen

16

Вы можете попробовать следующий ответ на отладку / загрузку Visual Studio очень медленно :

  1. Зайдите в Инструменты -> Параметры -> Отладка -> Общие

  2. Проверьте флажок рядом с «Включить только мой код».

  3. Перейдите в Инструменты -> Параметры -> Отладка -> Символы

  4. Нажмите кнопку «...» и создайте / выберите новую папку на локальном компьютере для хранения кэшированных символов. Я назвал мой «Кэширование символов» и поместил его в Documents -> Visual Studio 2012.

  5. Нажмите «Загрузить все символы» и дождитесь загрузки символов с серверов Microsoft, что может занять некоторое время. Обратите внимание, что кнопка «Загрузить все символы» доступна только во время отладки.

  6. Снимите флажок рядом с «Серверы Microsoft Symbol», чтобы запретить Visual Studio удаленно запрашивать серверы Microsoft.

  7. Нажмите «ОК».

Также попробуйте удалить все точки останова (Отладка> Удалить все точки останова),

См. Также : Visual Studio 2015 RC1 зависает в режиме отладки при загрузке символов


6

Для меня это похоже на точки останова, как указано в принятом ответе. Однако я нашел два обходных пути, которые не включали удаление всех точек останова:

  • Перезапуск Visual Studio, казалось, исправил это временно.
  • Нажатие кнопки «X» для закрытия Visual Studio во время отладки вызывает «Вы хотите прекратить отладку?» всплывающее окно с сообщением; пока это окно сообщения активировано, символы загружаются с обычной скоростью. Как только все символы загружены, вы можете нажать «Нет», чтобы отменить закрытие.

3
спасибо за этот сумасшедший обходной путь (с сообщением «Вы хотите прекратить отладку»). Сначала я попробовал другие ответы, но пока помогает только красная буква «Х» и трюк «хочешь ...». спасибо, я терял здравомыслие ...
Пестофаг

2
@que: хе, пожалуйста! Я обнаружил это случайно. Кажется, что у VS есть отдельный цикл обработки сообщений, который он вводит для этого модального диалога, поэтому всякий раз, когда он вяло, без причины, всплывающее окно диалога иногда помогает :-)
Кэмерон

6

Просто столкнулся с этой проблемой. Удаление точек останова не сработало или, по крайней мере, не само по себе. После того, как это не удалось, я пошел Инструменты> Параметры> Отладка> Символы и «Очистить кэш символов»

а затем очистили раствор и восстановили.

Теперь, кажется, работает правильно. Так что, если вы попробуете все остальные перечисленные вещи, и это все равно не будет иметь никакого значения, эти дополнительные биты информации могут помочь ...


2

В моем случае Visual Studio искал сторонние PDB по путям, которые на моей машине ссылались на оптический привод. Без диска в трее требовалось около 30 сбоев в работе Windows, что, в свою очередь, замедляло работу Visual Studio, поскольку она пыталась загрузить PDB из этого места. Более подробная информация доступна в моем полном ответе здесь: https://stackoverflow.com/a/17457581/85196


2

У меня была та же проблема, и даже после выключения загрузки символов загрузка модуля в Visual Studio была ужасно медленной.

Решением было отключить антивирусное программное обеспечение (в моем случае NOD32) или, что еще лучше, добавить к нему исключения, чтобы оно игнорировало пути, из которых ваш процесс загружает сборки (в моем случае это папка GAC и временный ASP). Папка .NET Files).


2

Мои 2 цента,

У меня была похожая проблема при попытке получить (Visual Studio 2013) диагностический отчет в режиме выпуска x64 (выборка процессора), и хотя символы для необходимых файлов DLL были загружены, символы для моего исполняемого файла не могли быть загружены.

Я ничего не изменил в меню «Символы», вместо этого я сделал некоторые изменения на страницах свойств потока моего исполняемого файла в обозревателе решений, а именно:

Свойства конфигурации / Общие / Включить управляемую инкрементную сборку в ДА

Свойства конфигурации / отладка / объединить среду в NO

Свойства конфигурации / C / C ++ / Включить Просмотр информации в YES (/ FR)

Свойства конфигурации / Linker / Включить инкрементное связывание с YES (/ INCREMENTAL)

РЕДАКТИРОВАТЬ: этот последний делает свое дело

....

Свойства конфигурации / Линкер / Отладка / Создать Отладочную информацию в Да (/ DEBUG)

....

После этого все заработало и нормально загрузилось. Я уверен, что один или несколько из вышеперечисленных сделали свое дело для меня (хотя я не уверен, какой именно) и просто хочу, чтобы другие знали и попробовать это ..

мир


1

Попробуйте щелкнуть правой кнопкой мыши одну из точек останова, а затем выберите «Местоположение». Затем установите флажок «Разрешить исходный код отличаться от исходной версии»


1

Visual Studio 2017 Отладка опций «ускорения» символа, если вы уже не сошли с ума от настройки опций:

  1. В Tools -> Options -> Debugging -> Symbols
    а. Включите опцию «Сервер Microsoft Symbol».
    Б. Нажмите «Очистить кэш символов»
    c. Установите кэш символов, чтобы легко найти место, например, C:\dbg_symbolsили%USERPROFILE%\dbg_symbols
  2. После повторного запуска Debug, позвольте ему загрузить все символы один раз, от начала до конца, или насколько это возможно.

1А и 2 являются наиболее важными шагами. 1B и 1C - это просто полезные изменения, которые помогут вам отслеживать ваши символы.

После того, как ваше приложение загрузило все символы хотя бы один раз и отладка не завершилась преждевременно, эти символы должны быть быстро загружены при следующем запуске отладки.

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


0

Снятие отметки «Включить отладку JavaScript для ASP.NET (Chrome и IE)» в разделе «Сервис-> Параметры-> Отладка-> Общие» разрешило мой случай с невозможностью запустить отладчик VS2017 с предустановленными точками останова.


0

Единственное, что сработало для меня, это изменение типа кода.

В окне « Присоединить к процессу» я изменил параметр « Присоединить к:», чтобы автоматически определять тип кода для отладки , после чего были достигнуты мои контрольные точки.

Ранее у меня был выбран только нативный код.


0

У меня была похожая проблема, когда Visual Studio продолжает загружать символ и застряла.

Оказывается, я добавил несколько «аргументов командной строки» в параметры отладки, и один из параметров недопустим (я должен передать некоторые значения). введите описание изображения здесь

После того как я удалил лишний параметр, он снова начинает работать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.