Символи завантаження Visual Studio


166

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

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

Але це було дуже повільно, і я не знаю, чому почав робити цей крок. Що я можу зробити?

Чи необхідний цей крок завантаження символу? Як я можу його відключити?

У діалоговому вікні Інструменти -> Параметри -> Налагодження -> Символи не додано розташування файлу символів (.pdb). І я вказав у каталозі налагодження мого проекту в полі нижче, і я поставив прапорець "Шукати вище в каталозі лише тоді, коли символи є ....". Як мені встановити це діалогове вікно, щоб вимкнути завантаження символу?

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

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


3
Я спробував кожну відповідь у темі, не пощастивши.
Йохан Ларссон

3
Зазвичай символи повинні кешуватися і не потребувати часу для завантаження, єдиний раз, коли ви помітите, що завантаження символів відбувається повільно, якщо символи завантажуються з серверів символів мікрософт, які дуже повільно, наприклад (не завжди дуже повільно, але повільно немає тим менше), тож один хороший спосіб спробувати вирішити цю проблему - видалити кеш символів, просто перейдіть до налагодження -> Опції -> Налагодження -> Символи та натисніть порожній кеш символів, якщо це не працює може бути цілком іншою проблемою, сподіваюся, що це вигідно комусь, бачачи, як це питання 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

Ну, це було несподівано! Це справді спрацювало. Ти врятував мій день, дуже дякую!
tmatuschek

132

Ще одна причина повільного завантаження - якщо ви відключили "Увімкнути просто мій код" у параметрах налагодження. Щоб увімкнути це, перейдіть до:

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

Переконайтеся, що це встановлено.


Параметр "Просто мій код" недоступний у діалоговому вікні "Параметри" в деяких експрес-версіях Visual Studio (хоча він є у Visual C # 2010 Express), але його можна змінити іншими способами: Як відключити "Просто мій код 'в Visual Basic 2005 Express? .
Пітер Мортенсен

3
Це те, що мене виправило ... а не відповідь "Видалити всі точки точки розриву".
Марк Бріттінгем

Це якраз про найгірший варіант у Visual Studio. Набагато краще просто вимкнути завантаження символу, щоб ви все ще могли бачити викиди та кадри стека, у яких просто відсутні символи. (Просто якийсь важкий для читання номер замість імені). Звичайно, я зазвичай працюю над кодом веб-сайту, тому під мною є ціла маса IIS, які можуть вийти з ладу. Зазвичай просто скасуйте вибір серверів символів Microsoft (і всіх віддалених) символів як джерела даних.
ebyrob

Ти врятував мою півдня ...! : D
Вайбхав Дешмух

43

Налаштуйте в Інструменти, Параметри, Налагодження, Символи.

Ви можете переглянути вікно виводу (перегляд, вихід), щоб побачити, що це зазвичай робить. Якщо це дуже повільно, це, мабуть, означає, що ви натискаєте на сервер символів, можливо, Microsoft, щоб завантажити відсутні символи. Це вимагає трьох звернень HTTP для кожного файлу, який він не може знайти під час кожного запуску - іноді це можна побачити в рядку стану внизу або, наприклад, у Fiddler. Ви можете бачити, які модулі завантажують символи в Налагодження, Windows, Модулі під час налагодження.

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


3
У діалоговому вікні Інструменти -> Параметри -> Налагодження -> Символи не додано розташування файлу символів (.pdb). І я вказав у каталозі налагодження мого проекту в полі нижче, і я поставив прапорець "Шукати вище в каталозі лише тоді, коли символи є ....". Я не знаю, як мені встановити це діалогове вікно, щоб вимкнути завантаження символів.
арнольдіно

1
Хм, я тоді не знаю. Вам потрібно завантажити символи для власного коду, щоб налагодити його, тому я не думаю, що ви хочете повністю вимкнути його. Я думаю, тоді я подивився б у вікно Модулі, щоб побачити, які завантажені символи, розробити, які саме вам потрібні, а потім, можливо, видалити .pdbs з кешу символів для тих, які вам не потрібні?
Rup

1
Перевірте "використовувати сервер символів мікрософт", запустіть свій код один раз, а потім усі символи знаходяться в кеші. Тепер ви можете зняти прапорець для збільшення швидкості.
John ktejik

1
Відключення сервера символів Microsoft в Інструменти -> Параметри -> Налагодження -> Символи виправлено це для мене. Перш ніж я чекав 30 секунд, щоб почати налагодження. Зараз це лише секунда або близько того.
Майк Чемберлен

41

Просто була ця проблема.

Я виправив це, перейшовши до:

Інструменти -> Опції -> Налагодження -> Символи

Потім зніміть прапорці з усіх не локальних джерел для файлів Symbol (.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. Натисніть кнопку "..." і створіть / виберіть нову папку десь на локальному комп'ютері, щоб зберігати кешовані символи. Я назвав шахту "Кешування символів" і помістив її в Документи -> Visual Studio 2012.

  5. Клацніть на "Завантажити всі символи" і чекайте, коли символи будуть завантажені з серверів Microsoft, що може зайняти деякий час. Зауважте, що кнопка Завантажити всі символи доступна лише під час налагодження.

  6. Зніміть галочку біля пункту "Сервери символів Microsoft", щоб запобігти віддаленому запиту серверів Microsoft на Visual Studio.

  7. Натисніть "ОК".

Спробуйте також видалити всі точки перерви (Налагодження> Видалити всі точки перерви),

Див. Також : Visual Studio 2015 RC1 висить у режимі налагодження під час завантаження символів


6

Для мене це здається пов'язаним з точками перерви, як зазначено у прийнятій відповіді. Однак я знайшов два обхідних шляхи, які не передбачали видалення всіх точок перерви:

  • Перезапуск Visual Studio, здавалося, тимчасово виправив.
  • Натискання кнопки "X", щоб закрити Visual Studio під час налагодження, викликає "Ви хочете припинити налагодження?" вікно повідомлень для спливаючих вікон; поки це поле повідомлень вгору, символи завантажуються із звичайною швидкістю. Після завантаження всіх символів ви можете натиснути "Ні", щоб скасувати закриття.

3
дякую за цей божевільний спосіб вирішення проблеми (з повідомленням "чи хочете ви припинити налагодження"). Я спробував спершу інші відповіді, але поки допомагає лише червоний "X" і трюк "хочеш ...". дякую, я втратив розум ...
пестофаг

2
@que: Хе, ласкаво просимо! Я виявив це випадково. Здається, що VS має окремий цикл повідомлень, який він переходить до цього модального діалогового вікна, тому всякий раз, коли він млявий без жодної причини, вискакує діалог, іноді допомагає :-)
Cameron

6

Щойно зіткнувся з цим питанням. Видалення точок перерви не спрацювало або, принаймні, не було самостійно. Після цього не вдалося піти Інструменти> Опції> Налагодження> Символи та "Порожній кеш символів"

а потім очистили розчин і відновили.

Зараз, здається, працює правильно. Тож якщо ви спробуєте всі інші перелічені речі, і це все одно не відрізняється, ці додаткові біти інформації можуть допомогти ...


2

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


2

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

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


2

Мої 2 копійки,

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

Я нічого не змінив у меню Symbols, замість цього я вніс деякі зміни на сторінках властивостей потоку мого виконуваного файлу в Провіднику рішень, а саме

Властивості конфігурації / Загальні / Увімкнути YES для керованої інкрементальної збірки

Властивості конфігурації / налагодження / середовище об'єднання в НЕТ

Властивості конфігурації / C / C ++ / Увімкнути інформацію про перегляд до YES (/ FR)

Властивості конфігурації / Linker / Увімкнути інкрементальне посилання на YES (/ INCREMENTAL)

EDIT: Цей останній робить трюк

….

Властивості конфігурації / Linker / Debugging / Створення інформації про налагодження до Так (/ DEBUG)

….

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

мир


1

Спробуйте клацнути правою кнопкою миші на одній з точок перерви, а потім виберіть "Місцезнаходження". Потім поставте прапорець "Дозволити вихідний код відрізнятися від початкової версії"


1

Параметр "прискорення" для символу налагодження Visual Studio 2017, припускаючи, що ви вже не з глузду з налаштування параметрів:

  1. В Tools -> Options -> Debugging -> Symbols
    а. Увімкніть опцію "Microsoft Symbol Server"
    b. Клацніть "Порожній кеш символу"
    c. Встановіть кеш символів на легко знайти місце, наприклад, C:\dbg_symbolsабо%USERPROFILE%\dbg_symbols
  2. Після повторного запуску налагодження дозвольте їй завантажувати всі символи один раз, від початку до кінця, або наскільки це можливо розумно.

1А та 2 - найважливіші кроки. 1B і 1C - це лише корисні зміни, які допоможуть вам відстежувати свої символи.

Після того, як ваша програма хоча б раз завантажила всі символи і налагодження не припинилося передчасно, ці символи повинні бути швидко завантажені під час наступної запуски налагодження.

Я помітив, що якщо я скасую запуск налагодження, мені доведеться перезавантажити ці символи, тому що я здогадуюсь, що вони "очищені", якщо нововведені та раптово скасовані. Я розумію основне обгрунтування такого потоку, але в цьому випадку це здається погано продуманим.


0

Зніміть прапорець "Увімкнути налагодження JavaScript для ASP.NET (Chrome і IE)" в меню Інструменти-> Параметри-> Налагодження-> Загальне вирішило мій випадок недоступності для запуску налагоджувача VS2017 із заздалегідь встановленими точками перерви.


0

Єдине, що працювало для мене, - це змінити тип коду.

У вікні Attach to Process я змінив Attach на: select, щоб автоматично визначити тип коду для налагодження , тоді мої точки проключення були звернені.

Раніше в мене було вибрано лише Native код.


0

У мене був подібний випуск, коли візуальна студія зберігає символ завантаження і застрягла.

Виявляється, я додав кілька параметрів "Аргументи командного рядка" в параметри налагодження, і один з параметрів недійсний (я повинен передавати деякі значення). введіть тут опис зображення

Після того, як я видалю додатковий параметр, він знову почне працювати.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.