Файл символа не загружен

Обновлено: 30.06.2024

У меня проблема с отладкой -- символы для моей сборки не загружаются. Короче говоря, я пишу рабочий процесс WSS 3.0 и развертываю его на удаленном сервере SharePoint. Пока все в порядке, рабочий процесс запущен.

На практике получается так, что VS жалуется на то, что символы не загружаются, и я не могу их отладить. Моя сборка рабочего процесса загружается — я вижу это в окне модулей. Однако для статуса символа я получаю «Не удается найти или открыть файл PDB». Если я просматриваю информацию о загрузке символа, я получаю следующее:

C:\WINDOWS\assembly\GAC_MSIL\SimpleWorkflow\3.0.0.0__d0af882641d96b1a\SimpleWorkflow.pdb: не удается найти или открыть файл PDB.
D:\Home\mpenkov\My Documents\Visual Studio 2005\Projects \SimpleWorkflow\SimpleWorkflow\obj\Debug\SimpleWorkflow.pdb: Не удается найти или открыть файл PDB.
.

Он ищет файл PDB везде, включая каталог obj проекта. Я проверил, что файл PDB находится в каталоге obj.

Тогда я решил попробовать загрузить символы вручную (щелкните правой кнопкой мыши SimpleWorkflow.dll в окне «Модули», «Загрузить символы») и указать файл PDB в каталоге obj. Я получаю следующую ошибку: "Файл символов SimpleWorkflow.pdb не соответствует модулю".

На данный момент у меня есть ряд вопросов к тем, кто лучше разбирается в способах отладки VS 2005.

1) Почему это происходит
2) Как VS определяет, что файл PDB не соответствует сборке На что он смотрит
3) Как я могу это исправить Можно ли как-то заставить его чтобы в любом случае загрузить символы из файла PDB

Напоследок несколько моментов, которые могут прояснить мою позицию:
1) Проект собирается в режиме Debug
2) Сборка подписана. Это требование для развертывания контента в SharePoint — у него должно быть строгое имя

Надеюсь, я ничего не пропустил.

Итак, есть ли у кого-нибудь какие-либо предложения. Это было бы действительно здорово, так как эта вещь меня действительно прижала в данный момент.

С уважением,
Майкл

Ошибка "не соответствует модулю" возникает, когда подписи (на самом деле GUID), встроенные как в pdb, так и в модуль, не совпадают. Распространенной причиной является то, что обновления не распространяются в GAC должным образом (например, вы удалили, а затем установили рассматриваемую сборку после последней перестройки

Как заставить de**** принять новую PDB как совпадающую с DLL на сайте клиента?
Они не из той же сборки, но основаны на одном и том же исходном коде.

Этот сценарий не поддерживается в Visual Studio de****. Вам нужен PDB оригинальной dll

Для проектного решения (в основном C++), созданного с помощью VS2005, я перестроил (используя Incredibuild) решение вне среды IDE. Впоследствии при попытке отладки VS de**** сообщает обо всех модулях как «Нет загруженных символов».

При попытке загрузить символы вручную я получаю следующее:

"Файл символов .pdb не соответствует модулю"

Я впервые вижу такое. Обычно Incredibuild надежен.

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

Проблема была устранена одним или обоими указанными выше способами.

У меня недавно было это - VS2005 - и это было связано с проблемой удаленной отладки.

Я отправлял только EXE/DLL, но когда я подключился удаленно, он не смог найти символы. Независимо от того, где я размещал свои символы (или использовал symstore в тщетной надежде, что это как-то связано с моей структурой каталогов). Файлы PDB были скомпилированы одновременно с EXE/DLL (в одном проекте, так что все вместе).

Глядя на "Информацию о загрузке символов", он показывает, что отладчик пытается загрузить символы из путей, которые могли быть ТОЛЬКО на моей машине (что-то вроде: C:\Source Code\VSS\ICAP RTD Framework\Release\IMDConnect Feed Plugin Настройка).

Мне удалось поместить файлы PDB на удаленную машину в каталоги, из которых запускались установленные файлы. Затем во время сеанса удаленной отладки в VS2005 я нажал ЗАГРУЗИТЬ СИМВОЛЫ, и, конечно же, им удалось загрузиться.

И на этот раз "Информация о загрузке символов" показывает путь, по которому выполнялась установка на удаленном компьютере.

Я думаю, что это ошибка - VS2005 должен иметь возможность загружать ЛОКАЛЬНЫЕ символы, которые соответствуют удаленному сеансу отладки - ИЛИ

Меня не устраивает эта проблема. Есть ли решение? Я использую Visual Studio 2008 и не могу отлаживать Javascript. Я продолжаю получать сообщение «Точка останова в настоящее время не будет достигнута. Документ не загружен».

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

База данных программы (.pdb), также называемые файлами символов, сопоставляют идентификаторы и операторы в исходном коде вашего проекта с соответствующими идентификаторами и инструкциями в скомпилированных приложениях. Эти файлы сопоставления связывают отладчик с исходным кодом, что позволяет выполнять отладку.

При сборке проекта из интегрированной среды разработки Visual Studio со стандартной конфигурацией сборки отладки компилятор создает соответствующие файлы символов. В этой статье описывается, как управлять файлами символов в среде IDE, например:

Для получения подробной информации о файлах символов см. следующее:

Как работают файлы символов

Файл .pdb содержит отладочную информацию и информацию о состоянии проекта, которая позволяет выполнять добавочное связывание конфигурации отладки вашего приложения. Отладчик Visual Studio использует файлы .pdb для определения двух ключевых элементов информации при отладке:

  • Имя исходного файла и номер строки для отображения в интегрированной среде разработки Visual Studio.
  • Где в приложении остановиться для точки останова.

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

Отладчик загружает только те файлы .pdb, которые точно соответствуют файлам .pdb, созданным при сборке приложения (то есть исходному .pdb файлы или копии). Это точное дублирование необходимо, потому что макет приложений может измениться, даже если сам код не изменился. Дополнительные сведения см. в разделе Почему Visual Studio требует, чтобы файлы символов отладчика точно соответствовали двоичным файлам, с помощью которых они были созданы?

Для отладки кода вне исходного кода вашего проекта, например кода Windows или стороннего кода, который вызывает ваш проект, необходимо указать расположение файлов .pdb внешнего кода (и, при необходимости, исходный код файлы), которые должны точно соответствовать сборкам в вашем приложении.

Где отладчик ищет символы

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

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

Отладчик ищет файлы символов в следующих местах:

Папка проекта.

Расположение, указанное внутри библиотеки DLL или исполняемого файла (.exe).

По умолчанию, если вы создали DLL или файл .exe на своем компьютере, компоновщик помещает полный путь и имя связанного файла .pdb в файл DLL или .exe. Отладчик проверяет, существует ли файл символов в этом месте.

Та же папка, что и файл DLL или .exe.

Любые местоположения, указанные в параметрах отладчика для файлов символов. Сведения о добавлении и включении местоположений символов см. в разделе Настройка местоположений символов и параметров загрузки.

Любая локальная папка кэша символов.

Указанные сетевые, интернет- или локальные серверы символов и местоположения, например серверы символов Microsoft, если они выбраны. Visual Studio может загружать файлы символов отладки с серверов символов, реализующих протокол symsrv. Visual Studio Team Foundation Server и средства отладки для Windows — это два инструмента, которые могут использовать серверы символов.

Серверы символов, которые вы можете использовать, включают:

Серверы символов во внутренней сети или на вашем локальном компьютере: ваша команда или компания могут создавать серверы символов для собственных продуктов и в качестве кэша для символов из внешних источников. У вас может быть сервер символов на вашем собственном компьютере.

Сторонние серверы символов. Сторонние поставщики приложений и библиотек для Windows могут предоставлять доступ к серверу символов через Интернет.

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

Настроить расположение файлов символов и параметры загрузки

По умолчанию отладчик проверяет наличие символов в различных местах. См. раздел Где отладчик ищет символы.

На странице Инструменты > Параметры > Отладка > Символы вы можете:

  • Укажите и выберите пути поиска файлов символов.
  • Укажите серверы символов для компонентов Microsoft, Windows или сторонних производителей.
  • Укажите модули, для которых вы хотите или не хотите, чтобы отладчик автоматически загружал символы.
  • Изменяйте эти параметры во время активной отладки. См. раздел Загрузка символов во время отладки.

Чтобы указать расположение символов и параметры загрузки:

В Visual Studio откройте Инструменты > Параметры > Отладка > Символы (или Отладка > Параметры > Символы).

В разделе Расположение файлов символов (.pdb)

Чтобы добавить новое местоположение сервера символов,

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

Выполняется поиск только в указанной папке. Вы должны добавить записи для всех подпапок, в которых вы хотите искать.

Чтобы добавить новое местоположение сервера символов VSTS,

Чтобы изменить порядок загрузки символов, используйте Ctrl+Up и Ctrl+Down или значки со стрелками вверх и вниз.

Чтобы изменить URL-адрес или путь, дважды щелкните запись или выберите ее и нажмите F2.

Чтобы удалить запись, выберите ее, а затем выберите значок -.

(Необязательно) Чтобы повысить производительность загрузки символов, в разделе Кэшировать символы в этом каталоге введите путь к локальной папке, в которую серверы символов могут копировать символы.

Не помещайте локальный кэш символов в защищенную папку, например C:\Windows, или во вложенную папку. Вместо этого используйте папку для чтения и записи.

Для проектов C++, если у вас установлена ​​переменная среды _NT_SYMBOL_PATH, она переопределит значение, установленное в символах кэша в этом каталоге.

Укажите модули, которые вы хотите, чтобы отладчик загружал из файлов символов (.pdb) при запуске.

Выберите Загрузить все модули, если они не исключены (по умолчанию), чтобы загрузить все символы для всех модулей в местоположении файла символов, за исключением специально исключенных модулей. Чтобы исключить определенные модули, выберите Указать исключенные модули, щелкните значок +, введите имена исключаемых модулей и нажмите кнопку ОК.

Чтобы загружать только указанные вами модули из расположений файлов символов, выберите Загружать только указанные модули. Выберите Указать включенные модули, щелкните значок +, введите имена модулей, которые необходимо включить, а затем нажмите кнопку ОК. Файлы символов для других модулей не загружены.

Выберите ОК.

Другие варианты символов для отладки

Вы можете выбрать дополнительные параметры символа в Инструменты > Параметры > Отладка > Общие (или Отладка > Параметры > Общие):

Загрузить экспорт DLL (только собственный)

Загружает таблицы экспорта DLL для C/C++. Дополнительные сведения см. в разделе Таблицы экспорта DLL. Чтение информации об экспорте DLL связано с некоторыми накладными расходами, поэтому загрузка экспортных таблиц по умолчанию отключена. Вы также можете использовать dumpbin /exports в командной строке сборки C/C++.

Включить отладку на уровне адреса и Показать дизассемблирование, если исходный код недоступен

Всегда показывает разборку, если исходные файлы или файлы символов не найдены.

 Параметры/Отладка/Общие параметры дизассемблирования

Включить поддержку исходного сервера

Использует исходный сервер для отладки приложения, если на локальном компьютере нет исходного кода или файл .pdb не соответствует исходному коду. Исходный сервер принимает запросы на файлы и возвращает фактические файлы из системы управления версиями. Исходный сервер запускается с помощью библиотеки DLL с именем srcsrv.dll для чтения файла .pdb приложения. Файл .pdb содержит указатели на репозиторий исходного кода, а также команды, используемые для извлечения исходного кода из репозитория.

Вы можете ограничить команды, которые srcsrv.dll может выполнять из файла приложения .pdb, перечислив разрешенные команды в файле с именем srcsrv.ini< /эм>. Поместите файл srcsrv.ini в ту же папку, что и srcsrv.dll и devenv.exe.

Произвольные команды могут быть встроены в файл .pdb приложения, поэтому обязательно поместите в файл srcsrv.ini только те команды, которые вы хотите выполнить. Любая попытка выполнить команду, отсутствующую в файле srcsvr.ini, приведет к появлению диалогового окна подтверждения. Дополнительные сведения см. в разделе Предупреждение системы безопасности: отладчик должен выполнить ненадежную команду.

Проверка параметров команды не выполняется, поэтому будьте осторожны с доверенными командами. Например, если вы указали cmd.exe в файле srcsrv.ini, злоумышленник может указать параметры cmd.exe, которые сделают его опасно.

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

 Включить параметры исходного сервера

Параметры символа компилятора

При сборке проекта из интегрированной среды разработки Visual Studio со стандартной конфигурацией сборки отладки C++ и управляемые компиляторы создают соответствующие файлы символов для вашего кода. Вы также можете установить параметры компилятора в коде.

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

Параметры C/C++

Файл .pdb для C/C++ создается при сборке с использованием /ZI или /Zi. В Visual C++ параметр /Fd присваивает имя файлу .pdb, который создает компилятор. При создании проекта в Visual Studio с помощью интегрированной среды разработки параметр /Fd задается для создания файла .pdb с именем .pdb.

Если вы создаете приложение C/C++ с помощью make-файла и указываете /ZI или /Zi без использования /Fd, компилятор создает два файла .pdb:

VC.pdb, где представляет версию компилятора Microsoft C++, например VC11.pdb

В файле VC.pdb хранится вся отладочная информация для отдельных объектных файлов, и он находится в том же каталоге, что и make-файл проекта. Каждый раз при создании объектного файла компилятор C/C++ объединяет отладочную информацию с файлом VC.pdb. Таким образом, даже если каждый исходный файл включает общие файлы заголовков, такие как , определения типов из этих заголовков сохраняются только один раз, а не в каждом объектном файле. Вставленная информация включает информацию о типе, но не включает информацию о символах, такую ​​как определения функций.

В файле .pdb хранится вся отладочная информация для файла проекта .exe, и он находится в подкаталоге \debug. Файл .pdb содержит полную информацию об отладке, включая прототипы функций, а не только информацию о типе из VC.pdb.

Оба файла VC.pdb и .pdb допускают добавочные обновления. Компоновщик также встраивает путь к файлам .pdb в создаваемый им файл .exe или .dll.

Таблицы экспорта DLL

Используйте команду dumpbin /exports, чтобы просмотреть символы, доступные в таблице экспорта библиотеки DLL. Символическая информация из таблиц экспорта DLL может быть полезна для работы с сообщениями Windows, процедурами Windows (WindowProcs), COM-объектами, маршалингом или любой библиотекой DLL, для которой у вас нет символов. Символы доступны для любой 32-битной системной DLL. Вызовы перечислены в порядке вызова, при этом текущая функция (наиболее глубоко вложенная) находится вверху.

Прочитав выходные данные dumpbin /exports, можно увидеть точные имена функций, включая небуквенно-цифровые символы. Просмотр точных имен функций полезен для установки точки останова для функции, поскольку имена функций могут быть усечены в другом месте отладчика. Дополнительные сведения см. в разделе dumpbin/exports.

Веб-приложения

Загружать символы во время отладки

Вы можете использовать модули, стек вызовов, локальные, автоматические или любое окно просмотра для загрузки символов или изменения параметров символов во время отладки. Дополнительные сведения см. в статье Знакомство с тем, как отладчик подключается к вашему приложению.

Работа с символами в окне "Модули"

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

Чтобы отслеживать или изменять расположение или параметры символов во время отладки:

  1. Чтобы открыть окно "Модули", во время отладки выберите "Отладка" > "Окна" > "Модули" (или нажмите Ctrl + Alt + U).
  2. В окне "Модули" щелкните правой кнопкой мыши заголовки "Статус символа" или "Файл символов" или любой модуль.
  3. В контекстном меню выберите один из следующих вариантов:

Использование страниц без загрузки символов/без загрузки исходного кода

Существует несколько способов, с помощью которых отладчик может проникнуть в код, в котором отсутствуют символы или исходные файлы:

  • Перейти к коду.
  • Взлом в код из точки останова или исключения.
  • Переключиться на другую цепочку.
  • Измените фрейм стека, дважды щелкнув фрейм в окне стека вызовов.

В этом случае отладчик отображает страницы Нет загруженных символов или Исходный код не загружен, чтобы помочь вам найти и загрузить необходимые символы или источник.

Страница без символов

Чтобы использовать страницу документа "Нет символов загружено" для поиска и загрузки отсутствующих символов:

Если отладчик находит файл .pdb после выполнения одной из опций и может получить исходный файл, используя информацию в файле .pdb, он отображает источник. В противном случае отображается страница «Нет загруженного источника», на которой описывается проблема со ссылками на действия, которые могут ее решить.

Чтобы добавить пути поиска исходных файлов в решение:

Вы можете указать места, в которых отладчик ищет исходные файлы, и исключить определенные файлы из поиска.

Выберите решение в обозревателе решений, а затем выберите значок "Свойства", нажмите клавиши ALT+ВВОД или щелкните правой кнопкой мыши и выберите "Свойства".

Выберите исходные файлы отладки.

Страница исходных файлов отладки

В разделе Каталоги, содержащие исходный код, введите или выберите местоположения исходного кода для поиска. Используйте значок "Новая линия", чтобы добавить дополнительные местоположения, значки со стрелками вверх и вниз, чтобы изменить их порядок, или значок X, чтобы удалить их.

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

В разделе Не искать эти исходные файлы введите имена исходных файлов, которые нужно исключить из поиска.

В этой записи блога я расскажу вам, что такое символы и как настроить параметры символов Visual Studio (которые используются другими инструментами диагностики помимо отладчика, такими как инструменты производительности и IntelliTrace), а также различные ручки, доступные при отладке. , и как устранять неполадки, когда Visual Studio не может найти нужные файлы символов.

Основные символы

Прежде чем мы углубимся в детали файлов символов, важно кратко рассмотреть, что такое символы и почему они важны:

  • Что такое файл символов? Для компиляторов Microsoft это файлы .pdb, которые создаются как часть вашей сборки.
  • Что содержится в файле символов (.pdb)? Точное содержимое файлов символов зависит от языка и настроек вашего компилятора, но на очень высоком уровне они представляют собой запись того, как компилятор преобразовал ваш исходный код в машинный код, который выполняет процессор.
  • Зачем нужны символы? Без символов инструменты не могут сопоставить инструкции, выполняемые в приложении, с исходным исходным кодом.
    • При отладке без файла символов вы не сможете установить точки останова на определенной строке кода. Если символы не загружены, вы увидите пустой кружок с предупреждающим символом в режиме отладки, и если вы наведете на него указатель мыши, всплывающая подсказка сообщит вам, что точка останова не будет достигнута, поскольку символы не были загружены.
    • В зависимости от того, что вы отлаживаете, могут потребоваться символы, чтобы показать вам полный стек вызовов и проверить объекты с помощью окон наблюдения или подсказок по данным (например, это верно для C++).
    • Примечание. Если вы отлаживаете файл дампа, который не содержит динамической памяти, отладчику потребуется доступ к исходному двоичному файлу, чтобы он мог определить правильный файл символов для загрузки. Иными словами, если вы отлаживаете дамп без информации о куче, вам нужны как соответствующий двоичный файл, так и файл символов в пути символов.

     clip_image001

    Поведение Visual Studio по умолчанию

    Прежде чем мы рассмотрим какие-либо расширенные настройки Visual Studio, важно остановиться и просмотреть поведение по умолчанию (имеется в виду, если вы никогда не коснетесь параметра, как он будет себя вести):

    Как узнать, загружен ли символ, и если нет, то почему?

    На снимке экрана выше (с пустой точкой останова) показана ситуация, когда символы не загрузились для исходного файла, в котором вы пытаетесь установить точку останова. Другие способы определить, загружены ли символы:

    • В окне стека вызовов появится сообщение о том, что символы не загружены

     clip_image003

    • В окне "Модули" будет указано (Отладка -> Windows -> Модули):
      • Статус файла символов (загружен, пропущен или не может быть открыт или найден)
      • Путь, откуда загружается двоичный файл
      • [если загружен] откуда был загружен файл символов
      • Версия модуля
      • Отметка времени модуля

       clip_image005

      Кроме того, отладчик может сообщить вам, почему он не загрузил символы и где их искал. Чтобы просмотреть эту информацию, откройте окно «Модули», щелкните модуль правой кнопкой мыши и выберите «Информация о загрузке символов…»

       clip_image007

      Появится окно, показывающее все пути, по которым отладчик искал файл символов.

       clip_image009

      Некоторые распространенные причины, по которым символы не загружаются, включают:

      • Пути символов не указывают на правильное местоположение
      • Файл символов относится к версии модуля, отличной от версии, загруженной в процессе
        • Visual Studio требует, чтобы файл символов был из той же сборки, что и модуль. Он не может загружать символы из другой сборки, даже если исходный код идентичен

        Настройка параметров Visual Studio

        Теперь, когда вы понимаете, что такое символы и как определить, загружены ли они, давайте посмотрим, как настроить параметры символов в Visual Studio. Чтобы получить доступ к настройкам символов, перейдите в меню «Отладка» и выберите «Параметры…» («Параметры и настройки…» в предыдущих версиях Visual Studio), а затем выберите подстраницу «Символы»

         clip_image011

        Вы увидите следующие настройки на странице:

        1. Местоположения файлов символов (.pdb)
        2. Настройки кеша символов
        3. Кнопка «Загрузить все символы»

        Местоположения файлов символов

        Если вы создаете и отлаживаете свое приложение из Visual Studio, этот параметр, скорее всего, не будет применяться к символам для ваших модулей, но удаленные местоположения символов (или серверы символов) используются для загрузки символов в ситуациях, когда вам нужен третий файл символа стороны (например, от Microsoft), или вы работаете в среде, где у вас может не быть символов на вашем локальном компьютере (например, ваше приложение создано с использованием сервера сборки. Если вы используете TFS, прочитайте о том, как добавить символ и поддержка архивирования исходного кода).

        • Вы можете добавить столько путей, сколько вам нужно.
        • Существует предварительно заполненная запись для общедоступных серверов символов Microsoft. Если вы хотите загружать символы для модулей от Microsoft (например, для среды выполнения или операционной системы), установите этот флажок.
        • Visual Studio будет искать локальные пути перед запросом сетевых путей независимо от указанного порядка.
        • Из соображений производительности, начиная с Visual Studio 2012 Update 1, Visual Studio будет выполнять поиск файла символов на каждом сервере символов только один раз в данном сеансе Visual Studio (пока вы не перезапустите Visual Studio), если включена автоматическая загрузка символов. Это означает, что вы не платите за сетевой вызов каждый раз, когда начинаете отладку, когда на сервере нет файла.
        • Переменная среды: _NT_SYMBOL_PATH: если вы видите это в расположении файлов символов, это означает, что установлена ​​переменная среды _NT_SYMBOL_PATH. Visual Studio использует библиотеку из Windows для загрузки символов, и библиотека всегда будет искать символы во всех местах в этой переменной среды; вот почему вы не можете снять флажок в Visual Studio. Вам нужно будет сбросить переменную среды, если вы хотите, чтобы Visual Studio игнорировала эту переменную.
          Если вам нужна переменная среды для других целей, простой способ отключить переменную локально — открыть командную строку, ввести «set _NT_SYMBOL_PATH=», а затем запустить Visual Studio из командной строки. Настройки среды вашей системы останутся неизменными.

        Кэш символов

        Кэш символов — это место на вашем локальном компьютере, куда Visual Studio помещает копии найденных символов в удаленных местах для будущего использования. Предполагая, что вы указали путь для кэша символов, Visual Studio выполнит поиск в кэше, прежде чем пытаться найти символы в любом расположении файлов символов, которое вы указали выше. Из соображений производительности мы рекомендуем указать кэш символов, если вам нужны символы, хранящиеся в удаленном месте.

        Загрузить все символы

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

        Автоматическая загрузка символов

        Visual Studio предлагает два режима автоматической загрузки символов:

        • Автоматически загружать символы для всех модулей, если они не исключены. Как видно из заголовка, если вы не добавите модуль в список исключений, нажав «Указать исключенные модули», Visual Studio попытается загрузить символы для всех модулей в процессе. Обычно вам понадобится этот параметр, если вы хотите, чтобы символы загружались почти для всего в процессе, или если есть только несколько очень больших символов, которые вы не хотите загружать из-за памяти или по причинам производительности при запуске отладки.
        • Только указанные модули. Этот параметр по умолчанию загрузит символы, расположенные рядом с двоичным файлом на диске, но не будет пытаться загрузить символы для каких-либо других модулей, если вы не добавите их в список включения, нажав «Указать модули».
          • Начиная с Visual Studio 2013 Update 2, в диалоговых окнах «Указание модулей» вместо имен модулей принимается *. Поэтому, если, например, вы хотите использовать ручную загрузку, но всегда загружаете символы для чего-либо, в названии которого есть «Microsoft», вы можете ввести «*Microsoft*»

           clip_image013

          • При необходимости символы можно загрузить вручную из окна стека вызовов. Для этого вы можете выделить отдельный кадр (или выделить все с помощью Ctrl+A), щелкнуть правой кнопкой мыши и выбрать «Загрузить символы».Это загрузит символы для всех модулей, которые в это время находились в окне стека вызовов. Если загрузка символов улучшит стек вызовов и будут найдены дополнительные модули, вам нужно будет повторить это, поскольку он не будет пытаться автоматически загружать символы для модулей, которые появились из-за предыдущей загрузки.

           clip_image015

          • Еще один вариант загрузки символов вручную во время отладки — найти модуль в окне "Модули" ("Отладка" -> "Окна" -> "Модули"), щелкнуть правой кнопкой мыши и выбрать "Загрузить символы".

           clip_image016

          Подробно о загрузке символов вручную

          Стоит отметить, что параметр «Только указанные модули» является предпочтительным для меня и многих членов команды Visual Studio при отладке. Причина этого:

          • При отладке очень больших приложений вы можете загружать символы по мере необходимости. Это помогает:
            • Производительность вашего сеанса отладки — вам не нужно ждать загрузки символов для всего в отлаживаемом процессе.
            • Память Visual Studio: если вы отлаживаете очень большое приложение, вам может потребоваться выборочная загрузка символов только для интересующих вас модулей. Поскольку Visual Studio является 32-разрядным процессом, его виртуальная память может увеличиться не более чем до 4 ГБ. . Для очень больших приложений вы можете иметь больше файлов символов, чем это.

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

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

            Заключение

            Отслеживание символов и правильная настройка параметров для достижения оптимальной производительности может быть довольно сложной задачей. Надеюсь, приведенный выше контент поможет вам понять доступные вам настройки. Однако, если вы столкнетесь с проблемами, которые я не осветил, или у вас есть какие-либо другие отзывы, которыми вы хотели бы поделиться, сообщите мне об этом ниже, с помощью функции «Отправить улыбку» в Visual Studio или на нашем форуме MSDN.

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

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

            К счастью для большинства из нас, Visual Studio действительно хорошо справляется с автоматической загрузкой символов (в частности, с автоматической загрузкой правильных символов), так что в большинстве случаев вы даже не замечаете, что задание делается, неважно, что он делает это правильно. Если ваша система непрерывной интеграции и пути к символам Visual Studio настроены правильно, система будет работать, что позволит вам просмотреть всю глубину аварийного дампа любой версии вашего программного обеспечения, которое было развернуто.

            А если нет? Что делать, если вы столкнулись с ужасным экраном «Символы не загружены»? И почему, когда вы указываете Visual Studio на dll или pdb, которые, как вы уверены, нужны, он отказывается их загружать? Что ж, давайте приоткроем завесу и посмотрим, как работает магия загрузки символов и отладки аварийного дампа.

            Для этого глубокого погружения я буду использовать Hex Editor Neo Free, хотя вы можете использовать другие инструменты, такие как CFF Explorer или любой другой шестнадцатеричный редактор или PE Explorer, чтобы сделать то же самое. Кроме того, я должен отдать должное этому сообщению Олега Стародумова, которое помогло мне расшифровать многое из того, что отсутствует в официальной документации.

            Шаг 1. Поиск подходящего модуля

            Это изображение имеет пустой атрибут alt; его имя файла: First-picutre-Joes-tech-blog.jpg

            Что происходит, когда вы получаете минидамп, загружаете его в Visual Studio и начинаете отладку? При отладке полного дампа памяти или при подключении к работающему процессу Visual Studio может напрямую проверять загруженные модули (исполняемый исполняемый файл и любые загруженные библиотеки DLL). В минидампе сохраняется только имя модуля и дополнительная информация в структуре MINIDUMP_MODULE. Visual Studio извлекает имя, метку времени и размер изображения и будет использовать все три, чтобы попытаться найти правильный модуль в хранилище символов. Он также будет использовать эту информацию для проверки любого модуля перед его загрузкой.

            Давайте загрузим файл dmp и самостоятельно найдем эти данные, чтобы попытаться отладить неудачную загрузку (если вы хотите попробовать и у вас нет под рукой минидампа, вы можете создать его, щелкнув правой кнопкой мыши любой процесс в на панели «Сведения» диспетчера задач и выбрав в меню «Создать файл дампа»). Используя Hex Editor Neo, сделайте следующее:

            VS использует конкатенацию TimeDateStamp и SizeOfImage в качестве уникального ключа для поиска в хранилище символов, а затем проверяет оба этих значения в любом двоичном модуле, который пытается загрузить. Это первая часть проверки того, что VS не загружает неправильные символы для сеанса отладки.

            Шаг 2. Загрузка модуля

            Теперь мы можем посмотреть, где Visual Studio ожидает найти двоичный модуль, который она пытается загрузить. Перейдите в хранилище символов (место, где ваша сборка CI выдает символы) и найдите подкаталог с именем модуля, который вы ищете — в нашем случае это папка с именем d3d11.dll. Если у вас нет хранилища символов для просмотра, вы можете посмотреть в своем локальном кэше символов, который обычно находится в %LOCALAPPDATA%\Temp\SymbolCache, поскольку он хранит кэшированные символы и двоичные файлы в том же формате. В папке d3d11.dll мы видим несколько папок с шестнадцатеричными значениями в качестве имен. Мы ищем то, которое является конкатенацией двух значений, которые мы нашли ранее: TimeDateStamp и SizeOfImage (обратите внимание, что для SizeOfImage наименее значащий байт опущен). В нашем случае это дает нам FECB8D5ED03600, и мы видим, что там есть нужная нам папка.

            Это изображение имеет пустой атрибут alt; его имя файла - untitled-1.jpg

            Когда эта папка отсутствует, Visual Studio запрашивает расположение двоичного файла. Теперь мы можем открыть модуль и найти совпадающую информацию внутри двоичного файла, что Visual Studio использует для проверки того, что он действительно нашел правильный двоичный модуль. Именно невыполнение этого шага приводит к наибольшей нервотрепке, когда вы указываете Visual Studio на файл, который, по вашему мнению, ему нужен, а он просто отказывается его загружать! По крайней мере, теперь вы будете знать, почему он не загружается (и если вы действительно хотите заставить его загрузиться, то вы будете знать, какой фрагмент файла нужно отредактировать, чтобы заставить его загрузиться)!

            Если вам интересно, откуда берутся все эти папки, они создаются с помощью инструмента под названием SymStore, который можно запустить непосредственно из сборки CI или из задачи PublishSymbols в TFS/Azure DevOps. Дополнительную информацию смотрите в конце этого поста.

            Мы снова открываем файл в HexEditorNeo, но на этот раз вместо того, чтобы смотреть на необработанный шестнадцатеричный код, мы можем использовать панель просмотра структуры (возможно, вам придется включить расширенный режим, чтобы увидеть это), чтобы изучить заголовки PE. Вы также можете использовать другой инструмент, такой как CFF Explorer, чтобы сделать это. Теперь мы просто переходим к dos_header → e_lfanew → FileHeader → TimeDateStamp, чтобы прочитать значение TimeDateStamp. Нажав на нее, мы попадем в соответствующее место в шестнадцатеричном редакторе, что позволит нам легко проверить соответствие шестнадцатеричного значения.

            Это изображение имеет пустой атрибут alt; его имя файла - untitled-4-1024x715.jpg

            Затем мы переходим к dos_header → e_lfanew → OptionalHeaderSelector → OptionalHeader → SizeOfImage, чтобы прочитать значение SizeOfImage. Снова щелкнув по нему, мы перейдем к соответствующей части двоичного файла, чтобы мы могли напрямую сравнить шестнадцатеричные значения и проверить совпадение.

            Это изображение имеет пустой атрибут alt; его имя файла без названия-5-1024x711.jpg

            Если вы были вынуждены пересобрать модуль, чтобы он соответствовал историческому аварийному дампу, это значение должно совпадать, а отметка времени будет другой.Просто измените TimeDateStamp во вновь созданном двоичном файле, чтобы он соответствовал ожидаемому значению (или отредактируйте файл дампа, чтобы он соответствовал вновь созданному модулю), и Visual Studio загрузит ваш новый двоичный файл, а затем извлечет вновь созданные символы!< /p>

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

            Шаг 3. Поиск подходящего pdb

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

            Снова мы можем использовать вкладку Просмотр структуры или другой обозреватель структуры PE, чтобы исследовать DebugDirectory, и теперь мы ищем хранящиеся там необработанные данные. Итак, мы переходим к DebugDirectory → AddressOfRawData → Data → data и нажимаем на него, чтобы перейти в соответствующее место в главном шестнадцатеричном редакторе. Мы видим, что этот раздел начинается с волшебной строки «RSDS», за которой следуют 16 байтов GUID, за которыми следует значение возраста (обычно «1») в виде uint32 и, наконец, исходный путь к файлу символов. Запишите эти значения, и теперь мы можем использовать их для загрузки правильных символов! В этом примере байты: F82BEBBA3FFA9C4D84643895BFA0295E для GUID и 01000000 для возраста.

            Это изображение имеет пустой атрибут alt; его имя файла Joe-blog-im--1024x720.jpg

            Шаг 4. Загрузка правильных символов

            Если вы отлаживаете процесс на машине, на которой был создан двоичный файл, все немного проще, поскольку мы только что нашли путь, ведущий непосредственно к файлам символов для загрузки! Но что, если бинарный файл был собран на другой машине, скажем, на CI-сервере? Что ж, опять Visual Studio обратится к хранилищу символов.

            Это изображение имеет пустой атрибут alt; его имя файла - Image-8.jpg

            Это изображение имеет пустой атрибут alt; его имя файла IMage-9-.jpg

            Бьюсь об заклад, вам интересно, загрузит ли Visual Studio эти символы вслепую или сначала подтвердит, что они действительно являются правильными символами для запущенного процесса. Вы, конечно, правы — есть последний шаг проверки, прежде чем Visual Studio действительно будет использовать символы, которые она только что нашла (или, если оба вышеуказанных поиска дадут пустое место, файл символов, который вы только что попросили загрузить из файла диалог). Visual Studio подтверждает, что это правильные символы, ища GUID внутри самого файла PDB. Судя по моим беглым исследованиям, он хранится в файле по смещению 0x0000500C с возрастом 0x00005008. Однако достаточно просто использовать шестнадцатеричный редактор и найти весь набор байтов, составляющих GUID (в данном случае F82BEBBA3FFA9C4D84643895BFA0295E). Если он нигде в файле не совпадает, то это точно не те символы!

            Заключение и дополнительная литература

            Вот как Visual Studio делает свое волшебство и сопоставляет символы с минидампом. Будем надеяться, что теперь, если один из этих шагов не сработает (из-за поврежденного файла, сбоя хранилища символов или каких-либо других махинаций с CI), вам будет чем заняться при попытке диагностировать проблему!

            Для получения дополнительной информации об индексации исходного кода и символах серверов прочитайте эту статью на CodeProject

            vancem прокомментировал 8 декабря 2017 г. Снимите флажок (Инструменты -> Параметры -> Отладка -> Только мой код). Убедитесь, что установлен флажок (Инструменты -> Параметры -> Отладка -> Параметры символов -> Серверы символов Microsoft). Убедитесь, что установлен флажок (Инструменты -> Параметры -> Отладка -> Включить поддержку исходных ссылок).

            Я не могу сломать код в точках останова, которые я установил, чтобы остановить выполнение. При всем этом у меня есть информация: «Точка останова в настоящее время не будет достигнута. Для этого документа не было загружено никаких символов». ···. windows 10.0visual studio 2017 версии 15.3debugger Это должно дать нам понять, почему символы не были загружены. Спасибо!

            ИИ. Интернет вещей. Когнитивные службы Azure. Квант. Microsoft ХолоЛенс.Смешанная реальность Настройте параметры отладки Visual Studio в меню «Инструменты» -> «Параметры» -> «Отладка» -> «Общие» с пошаговым исходным кодом ниже NET Framework. После запуска отладки и нажатия клавиши F11 выполняется обход строки кода класса StringBuilder.

            Подробности основной причины остаются неизвестными, однако комментарий Джима из По умолчанию в среде Visual Studio текущий-рабочий-каталог: я проверил это, переименовав его, после чего я получаю отчет о том, что DLL может не найти. Обе эти точки останова указывают, что в настоящее время они не будут срабатывать.

            Для этого документа не загружено ни одного символа. Сообщение об ошибке означает, что Visual Studio не может найти файл символов. Я не могу вспомнить, но конфигурация по умолчанию для режима выпуска может не создавать файл символов. сделать это, VS потребуется больше времени, чтобы добраться до точки останова, потому что он будет занят загрузкой файлов символов.

            <р>. восстановить; Проверьте окно «Модули», чтобы убедиться, что PDB загружен (это так); Беспорядок с «Отладочный источник». Очевидно, это все еще заставляет компилятор генерировать файл PDB, который может быть успешно загружен, просто в нем нет никаких полезных символов. Нет, после чего было показано диалоговое окно «Источник недоступен».

            Использование отладчика позволяет проверять исходный код во время работы. Например, в Visual Studio параметр Отладка > Присоединить отладчик Unity предоставляет доступ. Пока редактор кода находится в точке останова, вы можете шаг за шагом просматривать содержимое переменных. но основаны на уникальной идентификации вашего браузера и интернет-устройства.

            visualstudio-docs/docs/debugger/specify-symbol-dot-pdb-and-source-files-in-the- (необязательно) Чтобы повысить производительность загрузки символов, в разделе Кэшировать символы в этом разделе Использует исходный сервер для отладки приложение, когда в нем нет исходного кода. В противном случае отображается страница «Нет загруженного источника», описывающая проблему.

            SourceLink в NET Core. Доступ к исходному коду пакетов NuGet, которыми вы не владеете. Visual Studio 15.3+ поддерживает чтение информации SourceLink из символов. мои фиды NuGet, будь то локальные каталоги или.

            Отладка модулей без отладочной информации (PDB) С помощью ReSharper вы можете отлаживать любой скомпилированный модуль, даже если он не имеет отладочной информации (PDB). ReSharper декомпилирует модуль, сгенерирует для него PDB и автоматически загрузит декомпилированные символы для этого модуля в отладчик Visual Studio.

            Будьте сами NuGet. Создайте новую ветку для отладки пакета. Клонируйте или загрузите исходный код пакета. Откройте решение библиотеки в Visual Studio и запустите сборку. Теперь у вас должна быть свежая, локально собранная DLL. Теперь, когда у вас есть собственная DLL, повторно добавьте ссылку на DLL. Приступайте к отладке!

            Начните отладку приложений с помощью отладчика Visual Studio. Установите точку останова и запустите отладчик; Навигация по коду с помощью кнопки «Выполнить до щелчка» (Выполнить выполнение здесь) доступна, начиная с Visual Studio 2017. Перезапустите приложение с помощью «Выполнить до курсора» и приступайте к изучению исходного кода.

            NuGet и компиляция разрешат противоречие между пакетом и проектом на основе некоторых NET-команд, которые часто нуждаются в этом, поскольку мы отлаживаем компоненты в нескольких решениях. LibA.dll из кэша NuGet, несмотря на то, что Demo.csproj имеет прямой get Demo.csproj для развертывания локально созданных выходных данных из LibA.csproj.

            Щелкните правой кнопкой мыши проект->Свойства->Сборка->Дополнительно->Установите для отладочной информации значение Полное. Выберите Сервис-> Настройки импорта и экспорта-> Сбросить все настройки. При отладке откройте Debug->Windows->Modules. dll -> Информация о загрузке символов, проверьте, существует ли файл PDF.

            visualstudio-docs/docs/debugger/debug-live-azure-apps-troubleshooting.md Устранение неполадок и известных проблем с отладкой моментальных снимков в Visual Studio Проблема: символы не загружаются, когда я открываю моментальный снимок для подключения отладчика моментальных снимков в Visual Studio 2019 в службу приложений Azure, которая имеет.

            В большинстве руководств по настройке SourceLink не учитываются два ключевых момента. Затем, в локальном проекте, я смог войти в библиотеку (Visual Studio [раскрытие информации — я работаю над новой системой сборки] индексация исходного кода git доступна в новой версии.

            Например, компилятор Visual C++ генерирует отладочную информацию в формате PDB и занят файлами и модулями приложения, поскольку файлы отладочной информации могут ее найти и сообщают, что исполняемый файл не имеет отладочной информации.

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

            Visual Studio имеет отличный набор инструментов для отладки, но это полностью. Вы можете смягчить это, ограничив список модулей, для которых вам нужно загружать символы. Мы видим, что наш модуль находится в состоянии «Не удается найти или открыть этот файл PDB».

            В Visual Studio выберите Инструменты –> Параметры –> Отладка –> Символы: Visual Studio Шаг 2. Отключите «Только мой код» в Visual Studio. Далее нам нужен Шаг 3. Включите поддержку исходного сервера и исходной ссылки в Visual Studio.

            Вы должны настроить объект запуска в проекте Visual Studio. По сути, проблема была решена путем загрузки вручную одного из символов в Visual Studio в Visual Studio > Dynamics Санджай Кумар Сингх ответил 1 июля 2019 г., 2:22.

            Для каждого модуля без отладочной информации в локальной системе отправляется запрос на сервер символов. Если символы есть Многим пользователям не нужно изучать детали времени, проведенного в системных вызовах и модулях. Расположение файлов символов (.pdb).

            Visual Studio 15.3+ поддерживает считывание информации об исходной ссылке из символов при использовании исходной ссылки. Вы можете самостоятельно включить исходную ссылку. который используется отладчиком для поиска исходных файлов при переходе к коду.

            <р>. двоичный путь на случай, если вы хотите временно использовать локально созданный двоичный файл. Build.targets, чтобы переопределить двоичный путь ссылки на пакет NuGet. >c:\some\path\bin\LibGit2Sharp\Debug\net46\LibGit2Sharp.dll.

            Если точка останова отключена или не может быть установлена, она отображается в виде пустого круга. Предупреждения о точках останова; Точка останова была успешно установлена ​​(без предупреждений), но не сработала ошибка «Для этого документа не загружены символы».

            Без соответствующих файлов PDB вы только что создали метаданные отладочной задачи NET, поэтому нет необходимости дублировать ту же информацию в файле PDB. в окне "Модули Visual Studio", столбец "Файл символов" при отладке.

            Visual Studio IntelliSense не работает? Возможность поставить точку после некоторой переменной и получить хороший список всех возможных элементов Итак, первые несколько записей будут очень общим советом по устранению неполадок Visual Studio.

            Советы и рекомендации по устранению неполадок с Visual Studio Live Share. VS Code (Linux). Расширение Live Share не активируется, и после него не отображаются элементы строки состояния. Ниже приведены советы по устранению неполадок при входе в систему.

            Рекомендации по использованию Source Link для улучшения отладки. Ссылка на источник, включенная в Visual Studio, может входить в ее исходный код. Source Link предоставляет метаданные управления версиями для создания отличной отладки.

            Некоторые решения связывают эту ошибку с некоторыми сборками, на которые имеются ссылки. У MSDN есть несколько вещей, которые можно попробовать: предложения MSDN У меня была такая же проблема в Visual Studio 2010 на C++, и я превзошел ее с помощью Инструменты -> Параметры -> Текст.

            Настройте Visual Studio для работы с сервером символов dotPeek. При необходимости можно использовать списки сборок для загрузки необходимого набора сборок. Чаще всего проблемы возникают, когда целевая сборка не найдена. Исправить.

            Файл .pdb содержит информацию об отладке и состоянии проекта, что позволяет добавочным файлам System.pdb содержать символы для библиотек DLL Windows, файлов .exe и драйверов устройств. Файлы символов для других модулей не загружены.

            Советы и рекомендации по повышению производительности Visual Studio Такие дизайнеры, как Windows Forms и XAML, а также некоторые файлы JavaScript и машинописных текстов, могут открываться медленно. Вы часто можете изолировать проблемы с производительностью, отключив одно из расширений.

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

            gn gen --idevs --filters//chrome --no-deps out\Default Studio без накладных расходов на файл решения для нескольких проектов. Для отладки всего Chrome установите дочерний процесс Microsoft.

            Это включает информацию о символах CodeView, а также информацию об источнике и строке. Если в этом поле указано -1, то для этого модуля не будет дополнительной отладочной информации (.

            Он более мощный, чем встроенный отладчик Visual Studio, но его сложнее использовать (вроде gdb в Linux). Вы можете получить последнюю версию из Интернета Microsoft.

            Степпинг исходного кода NET Framework" и "Включить поддержку исходного сервера"), а также с использованием "Серверов символов Microsoft" ("Параметры" → "Отладка" → "Символы").

            Сохраняйте, очищайте решение каждый раз и запускайте, чтобы убедиться, что при достижении точек останова все пути кода действительны. ···. визуальная студия 2017 rcwindows 10.0 отладчик.

            Когда файл vs-chromium-project.txt находится в том же каталоге (или не рекомендуется оставлять окно отладки процессов открытым по умолчанию при использовании.

            Проблема: при обнаружении ошибок загрузка символов занимает слишком много времени. Однако по умолчанию файлы pdb для библиотек Microsoft не загружаются в Visual Studio.

            PDB из отладочной сборки, в которой нет символов, не поддерживается. Имея только модуль EXE или DLL, PDB Explorer позволяет просматривать экспортированные символы и файлы.

            Модуль pdb определяет интерактивный отладчик исходного кода для Python. Если трассировка не указана, он использует одно из существующих исключений.

            Некоторые вопросы об отладке Chromium/Chrome в Windows: 1) Могу ли я отлаживать официальные стабильные выпуски канала Google Chrome с исходным кодом (на уровне строки).

            <р>. на базовой странице счетчика в Visual Studio, следуя шагам из этой статьи, точка останова не срабатывает, поскольку «символы не загружены».

            Чтобы включить ведение журнала, запустите Chrome со следующими флагами командной строки: для Linux: docs/linux/debugging.md; Если вы отлаживаете запуск средства визуализации в Windows,.

            Если вместо этого я выберу в меню "Загрузить символы", модальное окно все еще будет проблемой в Visual Studio 15.9.6, Visual Studio Tools for Unity.

            Очень раздражающее диалоговое окно «Загрузка символов» в Visual Studio 2015 постоянно появляется. Привет, ребята,. У меня есть VS. У меня иногда возникает эта проблема с 2013 годом. Вы можете кэшировать.

            Символы загружены. редактировать: что-то проблема в моей dll. DllMain не вызывается. ···. Windows 10.0Visual StudioVisual Studio 2019 Версия 16.4. Закреплено. аватар.

            Вы можете заранее установить точки останова в стороннем коде. Это также значительно повышает ценность функций навигации в Visual Studio (.

            Существует несколько известных проблем с установщиком Visual Studio, над устранением которых работает Microsoft. Чтобы узнать, есть ли обходной путь для вашей проблемы,.

            Журналы изменений для Chromium и Blink. Руководства по развитию. Отладка в Windows, Mac OS X, Linux и Android. Резьба. Незначительные ошибки многопоточности и как это сделать.

            Выберите «Отладка» -> «Присоединить к процессу», чтобы найти процесс вашего приложения веб-формы — чаще всего это w3wp.exe и «Присоединить». Лучше всего использовать локальные библиотеки DLL.

            i686-pc-linux-gnu-gdb BOARD-NAME_out/Debug/chrome. (gdb) установить sysroot /build/BOARD-NAME/. На вашем хост-компьютере вы можете подключиться к этому серверу gdb:.

            В следующих двух разделах описываются известные предупреждения и способы их устранения. "Для этого документа не загружены символы". Перейти к.

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

            Чтобы использовать отладку исходного кода, ваш компилятор или компоновщик должен создавать файлы символов (файлы .pdb) при сборке двоичных файлов. Эти файлы символов.

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

            Чтобы включить Source Link в Visual Studio для Mac, перейдите в Visual Studio > Настройки… > Проекты > Отладчик и убедитесь, что Шаг в.

            Переключатель ссылок на пакеты (расширение Visual Studio); Переключение ссылок с помощью сценария PowerShell; Ссылка на DLL напрямую. Давайте посмотрим.

            Чтобы включить ссылку на источник в Visual Studio для Mac, выберите Visual Studio > Настройки. > Проекты > Отладчик и убедитесь, что шаг внутрь.

            Чтобы установить или изменить расположение источников символов и режим загрузки. Выберите категорию «Символы» в разделе «Инструменты» (или «Отладка») > «Параметры» > «Отладка».

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

            По сути, Source Link — это технология, позволяющая разработчикам отлаживать исходный код из пакетов NuGet, например таких инструментов, как Visual Studio.

            На следующем шаге вам нужно будет проверить правильную ветвь с символом Set (.pdb) и исходными файлами в отладчике — Visual Studio.

            Читайте также: