Запретить Visual Studio от попытки загрузить символы для определенной библиотеки DLL - PullRequest
59 голосов
/ 15 мая 2009

У меня установлена ​​Visual Studio 2005 для использования серверов символов Microsoft. У меня также установлен UltraMon , который внедряет подключаемую DLL в каждый процесс. Всякий раз, когда я начинаю отладку моего MFC приложения, Visual Studio говорит:

"Loading symbols for C:\Program Files\UltraMon\RTSUltraMonHookX32.dll..."

за что угодно, от мгновения до нескольких десятков секунд. Эти символы никогда не найдутся ... Могу ли я сказать, чтобы они не беспокоились о поиске?

(Я пытался создать пустой RTSUltraMonHookX32.pdb файл, но Visual Studio видит, что это нехорошо и продолжает смотреть.)

Ответы [ 8 ]

101 голосов
/ 15 мая 2009

Вы не можете сделать это очень детально, но вы можете отключить автоматическую загрузку символов, а затем вручную выбрать символы для загрузки через окно Модули (Отладка -> Windows -> Модули).

Чтобы отключить автоматическую загрузку символов

  • Инструменты -> Параметры -> Отладка -> Символы
  • Установите флажок «Искать в вышеуказанных местах только при ручной загрузке символов»
24 голосов
/ 05 июля 2010

Также убедитесь, что у вас нет переменной окружения "_NT_SYMBOL_PATH". Если у вас есть эта переменная символы будут загружаться независимо от настроек VS.

20 голосов
/ 25 мая 2012

Начиная с Visual Studio 2010, вы можете перейти на:

Tools -> Options -> Debugging -> Symbols -> Specify excluded modules

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

9 голосов
/ 02 марта 2017

В моем случае это было потому, что Я установил «Включить .Net Source Stepping» в true in

Tools > Options > Debugging > General. 

Вместо того, чтобы установить его на false, я установил «Enable Just My Code» на true, что автоматически установило «Enable .Net Source Stepping» на false. Перед тем как сделать это, я получил предупреждение:

Enabling Just my code automatically disabled .Net framework source stepping

Что предполагает Just My Code и .Net source stepping взаимоисключающие .

Надеюсь, это кому-нибудь поможет.

1 голос
/ 13 января 2012

Не только _NT_SYMBOL_PATH может вызывать такое поведение, но для меня это была переменная окружения _NT_ALT_SYMBOL_PATH, которая вызывала задержки.

(кажется, я добавил эту переменную при экспериментировании с WinDbg)

1 голос
/ 04 августа 2010

Вы также можете настроить исключения сервера символов, которые не будут пытаться загрузить, в HKEY_CURRENT_USER \ Software \ Microsoft \ Symbol Server \ Excptions или, возможно, также в HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Symbol Server \ Excptions или через файл .ini,% WINDIR% \ system32 \ inetsrv \ Symsrv.ini (используйте заголовок [exclusion] и поместите каждое исключение в отдельную строку). Исключением являются простые совпадения с образцом, поэтому используйте msxml5. *, Например.

0 голосов
/ 07 сентября 2016
  • Загрузите все пакеты символов с веб-сайта MS вручную, поместите их на SSD-диск для скорости: -)
  • Если у вас есть переменная окружения "_NT_SYMBOL_PATH", удалите часть "http://msdl.microsoft.com/download/symbols" из" SRV e: \ symbols *http://msdl.microsoft.com/download/symbols",, чтобы у вас был только путь символа где ваши символы живут драгоценно скачано.
  • Теперь у вас есть поддержка символов, но они не будут загружаться с MS, а загружаться с диска
0 голосов
/ 01 сентября 2016

В Visual Studio 2013 Pro, если установлен Microsoft Symbol Server, VS попытается загрузить все символы на свой сервер, что потребует много дополнительного времени.

...