Поделиться через


Поиск файлов символов (.pdb), исходного кода и двоичных файлов

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

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

Содержание раздела

Файлы символов (pdb-файлы)

  • Когда поиск отладчика для файлов PDB

  • Поэтому файлы символов должны точно совпадать с исполняемым файлам?

  • Определение расширения функциональности расположений и загрузки символов

    • Определение расширения функциональности расположений и загрузки символов в диалоговом окне параметров Visual Studio

    • Указать дополнительные параметры символов

  • Использование серверов символов

    • Использование Windows и других символов Майкрософт

    • Использование сервера символов во внутренней сети, или на локальном компьютере

    • С помощью сторонних серверов символов

  • Поиск и загружает символы при отладке

    • Изменение параметров символов из контекстного меню

    • Поиск символов с символами нет загружает страницы документа

  • Параметры компилятора для файлов символов

    • Параметры C C-++

    • параметры платформы .NET Framework

Исходные файлы

  • Когда поиск отладчика для файлов источника

  • Настройка файл источника параметры отладки

    • Добавление пути поиска файла источника в решение

    • Использование серверов источника

  • Поиск и загрузки файлов источника с одним источником или нет, загруженные страницы

Файлы символов (pdb-файлы)

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

ms241613.collapse_all(ru-ru,VS.110).gifКогда поиск отладчика для файлов PDB

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

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

  2. .pdb файлы, которые могут присутствовать в той же папке, что и исполняемый файл или библиотеку DLL.

  3. Все папки локального кэша символов.

  4. Все сети Интернет, или серверы и расположение локального символов, определите, например на Сервер символов Майкрософт, если включено.

ms241613.collapse_all(ru-ru,VS.110).gifПоэтому файлы символов должны точно совпадать с исполняемым файлам?

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

ms241613.collapse_all(ru-ru,VS.110).gifОпределение расширения функциональности расположений и загрузки символов

При отладке проекта в интегрированной среде разработки Visual Studio отладчик автоматически загружает файлы символов, расположенных в каталоге проекта.Можно указать альтернативные пути поиска и серверы символов для Microsoft, Windows, или компонентов, на странице Символы в Отладка/ Диалоговое окно "Параметры Visual Studio.На странице Символы можно указать конкретные модули, которые должны отладчику автоматически загрузить символы для.И затем можно изменить эти параметры вручную активно во время отладки.

ms241613.collapse_all(ru-ru,VS.110).gifОпределение расширения функциональности расположений и загрузки символов в диалоговом окне параметров Visual Studio

Открыть страницу отладки и символов

  1. В меню Отладка выберите команду Параметры.

  2. В диалоговом окне Параметры выберите Символы в узле Отладка.

Указать адрес сервера или поиска символов

  1. Выберите Значок Сервис/Параметры/Отладка/значок папки "Символы" папки.В поле Места размещения файлов символов (.pdb) отобразится редактируемый текст.

  2. Введите URL-адрес или путь к каталогу сервера символов или расположения символов.Завершение операторов помогает найти правильный формат.

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

    ПримечаниеПримечание

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

Определения расширения функциональности загрузки символов

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

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

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

ms241613.collapse_all(ru-ru,VS.110).gifУказать дополнительные параметры символов

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

Предупреждать об отсутствии символов при запуске (только машинный код)

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

Загрузка экспорта библиотеки DLL

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

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

ms241613.collapse_all(ru-ru,VS.110).gifИспользование серверов символов

Visual Studio может загрузить файлы символов отладки из серверов символов, которые реализуют протокол symsrv.Visual Studio Team Foundation Server и Средства отладки для Windows 2 средства, могут реализовывать сервера символов.Указать серверы символов для использования в диалоговом окне Visual Studio:

Сервис — Параметры — Отладка — страница "Символы"

Возможно использование следующих серверов символов:

  • Серверы открытого символов корпорации Майкрософт, которые обеспечивают символов для операционных систем Windows, помимо компонентов MDAC, IIS ISA, и .NET Framework.

  • Внутренний сервер символов в собственной сети.

  • Сервер символов на локальном компьютере.

  • Сервер внешнего символов, предоставляющее символов для библиотеки DLL третьей стороны для использования в коде.

Для серверов символов отличных от открытых серверов корпорации Майкрософт, следует указать адрес перед использованием их.

ms241613.collapse_all(ru-ru,VS.110).gifИспользование Windows и других символов Майкрософт

Для отладки сбоев, которая происходит во время вызова системных библиотек DLL или в библиотеку третьей стороны, зачастую требуется файлы системы), которые содержат символы для библиотеки DLL и EXE, драйверов устройств Windows.Эти символы можно получить из нескольких источников.

Серверы символов с помощью Microsoft

Для использования сервера символов Майкрософт выберите Параметры и настройки в меню Отладка и выберите Символы.Выберите Серверы символов Microsoft.Необходимо также указать локальный каталог в качестве расположения кэша, где хранятся загруженные символы.Загруженные символы хранилище здесь для повышения производительности.

Visual Studio выполняет подключение к Серверам символов Майкрософт автоматически при выборе пункта Серверы символов Microsoft на странице символов диалогового окна параметров.

Другие источники символов Майкрософт

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

  • Вставьте компакт-диск Visual Studio содержит файлы символов для выбранных версий Windows.

ms241613.collapse_all(ru-ru,VS.110).gifИспользование сервера символов во внутренней сети, или на локальном компьютере

В группу или компания может создать сервера символов для собственных продуктов и как кэш для символов из внешних источников.Это может быть компьютер сервера символов собственный.Можно введите расположение серверов символов как URL-адрес или путь на сервере символов в окне Места размещения файлов символов (.pdb) на странице Отладка/СимволыВыводить это окно Visual Studio.

ms241613.collapse_all(ru-ru,VS.110).gifС помощью сторонних серверов символов

Поставщики третьей стороны Windows-приложение и библиотек могут предоставлять доступ к серверу символов в Интернете.Также обязательно укажите URL-адрес этих серверов символов на странице Отладка/Символы,

ПримечаниеПримечание

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

ms241613.collapse_all(ru-ru,VS.110).gifПоиск и загружает символы при отладке

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

ms241613.collapse_all(ru-ru,VS.110).gifИзменение параметров символов из контекстного меню

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

Параметр

Описание

Загрузка символов

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

Сведения о загрузке символов

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

Параметры символов...

Открывает страницу отладки и символов диалогового окна Visual Studio.

Всегда автоматически загрузить

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

ms241613.collapse_all(ru-ru,VS.110).gifПоиск символов с символами нет загружает страницы документа

Существует несколько способов для отладчика войти в код, не имеющий символов для:

  1. Захода в код.

  2. Прерывание в код из точки останова или исключения.

  3. Переключение на другой поток.

  4. Изменение кадр стека, дважды щелкнув кадр стека вызова.

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

Страница "Символы не загружены"

  • Изменение пути поиска, изменение не выбран путь или выберите Создать и ввести новый путь.Выберите Загрузить для поиска пути снова и загрузки файлов символов, если она найдена.

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

  • Выберите Параметры символов изменения…, чтобы открыть страницу Отладка / Символы диалогового окна параметров Visual Studio.

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

  • , Чтобы всегда выполняется дизассемблированный код, если не найдены файлы источника или символа, выберите ссылку Диалоговое окно "Параметры и выделите Включение отладки на уровне адреса и Отображение дизассемблированный код, если источник недоступно.

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

ms241613.collapse_all(ru-ru,VS.110).gifПараметры компилятора для файлов символов

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

ms241613.collapse_all(ru-ru,VS.110).gifПараметры C C-++

Файл базы данных программы (PDB) поддерживает отладку и состоянии проекта, позволяющие последовательной компоновки конфигурации отладки программы.Pdb-файл создается при построении с помощью /ZI или /Zi (для C C ИЛИ C-++).

В Visual C++ параметр /Fd pdb-файл создается компилятором.При создании проекта в Visual Studio с использованием мастеров параметр /Fd устанавливается, чтобы создать файл с именем) pdb-файл.

При построении приложения C C И C-++ с использованием файла makefile и заданием /ZI или /Zi без /Fd можно выполнить поиск с файлами 2):

  • VCX.PDB, где x представляет версию Visual C, C-++, например VC11.pdb.Этот файл хранит все отладочные данные для отдельных OBJ-файлов и располагается в том же каталоге, что и файл makefile.

  • этот файл project.pdb сохраняет всю отладочную информацию для файла the.exe.Для С/С++ он располагается в подкаталоге \debug.

Каждый раз, когда создается файл OBJ, слияния компилятора C И C-++ C - отладочные сведения в VCX.PDB.Вставляемая информация включает информацию о типах, но не включает символьную информацию, такую как определения функций.Поэтому даже если файл источника включает общие файлы заголовков, такие как <windows.h>, typedef из этих заголовков сохраняются только один раз, а не для каждого obj-файла.

Компоновщик создает pdb-файл, содержащий отладочные данные для исполняемых файлов проекта.Файл проект.pdb содержит полные отладочные данные, включая прототипы функций, а не только сведения о типе, в VC x).Оба pdb-файла позволяют осуществлять добавочное обновление.Компоновщик также включает путь к PDB-файлу в EXE-файл или DLL, который создает.

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

ms241613.collapse_all(ru-ru,VS.110).gifпараметры платформы .NET Framework

Файл базы данных программы (PDB) поддерживает отладку и состоянии проекта, позволяющие последовательной компоновки конфигурации отладки программы.Pdb-файл создается при построении с /debug.Можно строить приложения с ключом /debug:full или /debug:pdbonly.При построении с ключом /debug:full создается отлаживаемый код.При построении с ключом /debug:pdbonly создается pdb-файлы, но не создает DebuggableAttribute, который позволяет jit-компилятору, отладочные данные доступно.Используйте /debug:pdbonly, если требуется создать pdb-файлы для построения выпуска, который не должен быть отлаживаемым.Дополнительные сведения см. в разделе /debug (параметры компилятора C#) или /debug (Visual Basic).

Отладчик Visual Studio использует путь к файлу PDB в файле EXE или DLL, чтобы найти pdb-файл проекта.Если отладчик не может найти pdb-файл в этом расположении, или если путь является недопустимым, отладчик ищет путь, содержащий исполняемый файл EXE, за которым следует путь к символам, указанный в диалоговом окне Параметры.Этот путь обычно является папкой Отладка в узле Символы.Отладчик не загружает pdb-файл, не соответствующий отлаживаемой исполняемому файлу.Если отладчик не может найти pdb-файл, открывается диалоговое окно Поиск символов, позволяющее найти символы или добавить дополнительные местоположения в путь поиска.

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

В файле конфигурации данного приложения (Web.config) необходимо установить режим отладки.Причины режима отладки ASP.NET для создания символов для динамически созданных файлов и подключить отладчик вложение приложению ASP.NET.Visual Studio устанавливает это автоматически при запуске отладки, если проект создан на основе шаблона веб-проекта.

Исходные файлы

Окно стека вызовов, модуля или контрольных значений

ms241613.collapse_all(ru-ru,VS.110).gifКогда поиск отладчика для файлов источника

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

  1. Файлы, открытые в интегрированной среде разработки Visual Studio экземпляра, который запущен отладчик.

  2. Файлы решения, открыто в экземпляре Visual Studio.

  3. Каталоги, которые определены на странице Общие свойства / Исходные файлы отладки в свойствах решения.

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

ms241613.collapse_all(ru-ru,VS.110).gifНастройка файл источника параметры отладки

ms241613.collapse_all(ru-ru,VS.110).gifДобавление пути поиска файла источника в решение

Можно указать сеть и локальные каталоги для поиска файлов источника.

  1. Выделите решение в обозревателе решений и выберите пункт Свойства из контекстного меню.

  2. Разверните узел Общие свойства и выберите Исходные файлы отладки.

  3. Щелкните Значок папки Сервис/Параметры/Отладка/значок папки "Символы".Изменяемый текст отобразится в списке Каталоги, содержащие исходный код.

  4. Добавьте путь, который требуется найти.

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

ms241613.collapse_all(ru-ru,VS.110).gifИспользование серверов источника

При отсутствии исходный код на локальном компьютере или pdb-файл не будет соответствовать исходный код, можно использовать сервер источника для облегчения отладки приложения.Сервер системы управления версиями принимает запросы на файлы и возвращает сами файлы.Сервер системы управления версиями выполняется посредством DLL-файла с именем srcsrv.dll.Сервер источника считывает pdb-файл приложения, который содержит указатели на репозиторий исходного кода, так и команды, используемые для извлечения исходный код из репозитория.Можно установить команды, выполнять из pdb-файла приложения, список разрешенных команд в файле с именем srcsrv.ini, который должен быть помещен в том же каталоге, что и srcsrv.dll и devenv.exe.

Дополнительные сведения о подключение и использовании сервера источника см. в разделе Сервер источника.

Примечание о безопасностиПримечание по безопасности

Могут быть внедрены произвольные команды в pdb-файл приложения, поэтому убедитесь, что отображается только один требуется выполнить в файле srcsrv.ini.Любая попытка выполнить команду не из файла srcsvr.ini вызовет диалоговое окно подтверждения.Дополнительные сведения см. в разделе Предупреждение системы безопасности. Отладчик должен выполнить команду без доверия.Параметры команд не проверяются, поэтому будьте внимательны с доверенными командами.Например, при доверии сmd.exe пользователь-злоумышленник может указать параметры, которые сделают команду опасной.

Использоваться сервера источника

  1. Убедитесь, что компиляция проведена с учетом мер безопасности, описанных в предыдущем разделе.

  2. В меню Сервис выберите пункт Параметры.

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

  3. В узле Отладка выберите Общие.

  4. Установите флажок Включить поддержку сервера системы управления версиями.

    Включить параметры сервера системы управления версиями

  5. (Необязательно) выберите дочерние параметры, которые требуется.

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

ms241613.collapse_all(ru-ru,VS.110).gifПоиск и загрузки файлов источника с одним источником или нет, загруженные страницы

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