Указание файлов символов (PDB) и исходных файлов в отладчике Visual Studio (C#, C++, Visual Basic, F#)Specify symbol (.pdb) and source files in the Visual Studio debugger (C#, C++, Visual Basic, F#)

Файлы базы данных программ (PDB) также называются файлами символов и используются для сопоставления идентификаторов и инструкций в исходном коде вашего проекта с соответствующими идентификаторами и инструкциями в скомпилированных приложениях.Program database (.pdb) files, also called symbol files, map identifiers and statements in your project's source code to corresponding identifiers and instructions in compiled apps. С помощью этих файлов отладчик связывается с исходным кодом, что позволяет выполнять его отладку.These mapping files link the debugger to your source code, which enables debugging.

При создании проекта из интегрированной среды разработки Visual Studio со стандартной конфигурацией отладочной сборки компилятор создает необходимые файлы символов.When you build a project from the Visual Studio IDE with the standard Debug build configuration, the compiler creates the appropriate symbol files. В этой статье описывается, как управлять файлами символов в интегрированной среде разработки, например, как указать расположение символов в параметрах отладчика, как проверить состояние загрузки символов во время отладки и как задать параметры символов в коде.This article describes how to manage symbol files in the IDE, for example, how to specify the location of symbols in the debugger options, how to check symbol loading status while debugging, and how to set symbol options in code.

Подробные сведения о файлах символов см. в следующих статьях:For a detailed explanation of symbol files, see the following:

Принципы использования файлов символовHow symbol files work

PDB-файл содержит отладочные данные и сведения о состоянии проекта, позволяющие выполнять инкрементную компоновку отладочной конфигурации приложения.The .pdb file holds debugging and project state information that allows incremental linking of a Debug configuration of your app. Отладчик Visual Studio использует PDB-файлы для определения двух ключевых элементов информации во время отладки:The Visual Studio debugger uses .pdb files to determine two key pieces of information while debugging:

  • Имя исходного файла и номер строки, которая отображается в интегрированной среде разработки Visual Studio.The source file name and line number to display in the Visual Studio IDE.
  • Расположение точки останова в приложении.Where in the app to stop for a breakpoint.

В файлах символов также указываются расположение исходных файлов и при необходимости сервер, с которого они будут извлекаться.Symbol files also show the location of the source files, and optionally, the server to retrieve them from.

Отладчик загружает только те PDB-файлы, которые точно соответствуют PDB-файлам, созданным при построении приложения (то есть исходные PDB-файлы или их копии).The debugger only loads .pdb files that exactly match the .pdb files created when an app was built (that is, the original .pdb files or copies). Точное дублирование является обязательным, поскольку компоновка приложения может быть изменена даже в том случае, если сам код не изменялся.This exact duplication is necessary because the layout of apps can change even if the code itself has not changed.

Совет

Если требуется выполнить отладку кода за пределами исходного кода проекта, например кода Windows или стороннего кода, вызываемого проектом, необходимо указать расположение PDВ-файлов (и, если необходимо, исходных файлов) для внешнего кода, причем эти файлы должны точно соответствовать сборкам вашего приложения.To debug code outside your project source code, such as Windows code or third-party code your project calls, you must specify the location of the external code's .pdb files (and optionally, the source files), which must exactly match the builds in your app.

Расположение файлов символов и поведение при загрузкеSymbol file locations and loading behavior

При отладке проекта в интегрированной среде разработки Visual Studio отладчик автоматически загружает файлы символов, расположенные в папке проекта.When you debug a project in the Visual Studio IDE, the debugger automatically loads symbol files that are located in the project folder.

Примечание

При отладке управляемого кода на удаленном устройстве все необходимые файлы символов должны находиться либо на локальном компьютере, либо в расположении, указанном в параметрах отладчика.When debugging managed code on a remote device, all symbol files must be located either on the local machine, or in a location specified in the debugger options.

Отладчик также ищет файлы символов в следующих местах:The debugger also searches for symbol files in the following locations:

  1. Расположение, указанное в библиотеке DLL или в исполняемом файле (EXE).The location that is specified inside the DLL or the executable (.exe) file.

    По умолчанию, если на компьютере производится сборка библиотеки DLL или исполняемого файла (EXE), компоновщик помещает полный путь и имя связанного PDB-файла в библиотеку DLL или в EXE-файл.By default, if you have built a DLL or an .exe file on your computer, the linker places the full path and filename of the associated .pdb file in the DLL or .exe file. Отладчик проверяет, присутствует ли файл символов в этом расположении.The debugger checks to see if the symbol file exists in that location.

  2. Папка, в которой располагается сам DLL- или EXE-файл.The same folder as the DLL or .exe file.

  3. Любые расположения, указанные в параметрах отладчика для файлов символов.Any locations specified in the debugger options for symbol files. Сведения о добавлении и активации расположений символов см. в разделе Настройка расположения символов и параметров загрузки.To add and enable symbol locations, see Configure symbol locations and loading options.

    • Любая папка локального кэша символов.Any local symbol cache folder.

    • Указанные серверы и расположения символов — локальные, сетевые или в Интернете — такие как серверы символов корпорации Майкрософт, если эта возможность включена.Specified network, internet, or local symbol servers and locations, such as the Microsoft Symbol Servers if selected. Visual StudioVisual Studio может загружать отладочные файлы символов с серверов символов, которые реализуют протокол symsrv.can download debugging symbol files from symbol servers that implement the symsrv protocol. Visual Studio Team Foundation Server и средства отладки для Windows — это два средства, которые могут использовать серверы символов.Visual Studio Team Foundation Server and the Debugging Tools for Windows are two tools that can use symbol servers.

      Возможно использование следующих серверов символов:Symbol servers you might use include:

      Общедоступные серверы символов Майкрософт При отладке отказов, возникающих при обращении к системной библиотеке DLL или библиотеке стороннего производителя, зачастую требуются системные PDB-файлы.Public Microsoft Symbol Servers: To debug a crash that occurs during a call to a system DLL or to a third-party library, you often need system .pdb files. Системные PDB-файлы содержат символьные данные для библиотек DLL, EXE-файлов и драйверов устройств Windows.System .pdb files contain symbols for Windows DLLs, .exe files, and device drivers. Символы для операционных систем Windows, MDAC, IIS, ISA и .NET можно получить с общедоступных серверов символов корпорации Майкрософт.You can get symbols for Windows operating systems, MDAC, IIS, ISA, and .NET from the public Microsoft Symbol Servers.

      Серверы символов во внутренней сети или на локальном компьютере Команда разработчиков или компания может создавать серверы символов для собственных продуктов и поддерживать кэш для символов из внешних источников.Symbol servers on an internal network or on your local machine: Your team or company can create symbol servers for your own products, and as a cache for symbols from external sources. Можно иметь сервер символов на собственном компьютере.You might have a symbol server on your own machine.

      Сторонние серверы символов Сторонние поставщики приложений Windows и библиотек могут предоставить доступ к серверу символов в Интернете.Third-party symbol servers: Third-party providers of Windows applications and libraries can provide access to symbol server on the internet.

      Предупреждение

      При использовании сервера символов, отличного от общедоступных серверов корпорации Майкрософт, следует убедиться в том, что сервер и его путь заслуживают доверия.If you use a symbol server other than the public Microsoft Symbol Servers, make sure that the symbol server and its path are trustworthy. Поскольку файлы символов могут содержать произвольный исполняемый код, возможно возникновение угроз безопасности.Because symbol files can contain arbitrary executable code, you can be exposed to security threats.

Настройка расположения символов и параметров загрузкиConfigure symbol locations and loading options

На странице Сервис > Параметры > Отладка > Символы можно выполнить следующие действия.On the Tools > Options > Debugging > Symbols page, you can:

  • Указать и выбрать пути поиска и серверы символов для компонентов Майкрософт, Windows или сторонних производителей.Specify and select search paths and symbol servers for Microsoft, Windows, or third-party components.
  • Указать модули, для которых отладчик будет или не будет автоматически загружать символы.Specify modules that you do or don't want the debugger to automatically load symbols for.
  • Эти параметры можно изменять во время выполнения отладки.Change these settings while you are actively debugging. См. раздел Управление символами при отладке.See Manage symbols while debugging.

Указание расположения символов и параметров загрузки:To specify symbol locations and loading options:

  1. В Visual Studio откройте меню Сервис > Параметры > Отладка > Символы (или Отладка > Параметры > Символы).In Visual Studio, open Tools > Options > Debugging > Symbols (or Debug > Options > Symbols).

  2. В разделе Места размещения файлов символов (.pdb) :Under Symbol file (.pdb) locations,

    • Установите соответствующий флажок, чтобы использовать Серверы символов (Майкрософт) или Сервер символов NuGet.org.To use the Microsoft Symbol Servers or NuGet.org Symbol Server, select the checkbox.

    • Чтобы добавить новое расположение сервера символов:To add a new symbol server location,

      1. Щелкните символ + на панели инструментов.Select the + symbol in the toolbar.
      2. Укажите в текстовом поле URL-адрес (http), сетевую папку или локальный путь к серверу символов или расположению символов.Type the URL (http), network share, or local path of the symbol server or symbol location in the text field. Завершение операторов помогает найти правильный формат.Statement completion helps you find the correct format.

      Страница "Сервис - Параметры - Отладка - Символы"Tools - Options - Debugging - Symbols page

      Примечание

      Поиск выполняется только в указанной папке.Only the specified folder is searched. Любые вложенные папки, в которых требуется осуществлять поиск, должны быть внесены в список.You must add entries for any subfolders that you want to search.

    • Добавление нового расположения сервера символов VSTS:To add a new VSTS Symbol Server location,

      1. Выберите "Сервис / Параметры / Отладка / Символы" и щелкните значок нового сервера на панели инструментов.Select the Tools/ Options/ Debugging/Symbols new server icon icon in the toolbar.
      2. В диалоговом окне Подключение к серверу символов VSTS выберите один из доступных серверов символов и щелкните Подключить.In the Connect to VSTS Symbol Server dialog, choose one of the available symbol servers, and select Connect.
    • Чтобы изменить порядок загрузки для расположений символов, используйте клавиши CTRL+СТРЕЛКА ВВЕРХ и CTRL+СТРЕЛКА ВНИЗ либо значки со стрелками вверх и вниз.To change the loading order for the symbol locations, use Ctrl+Up and Ctrl+Down, or the Up and Down arrow icons.

    • Чтобы изменить URL-адрес или путь, дважды щелкните элемент или выберите его и нажмите клавишу F2.To edit a URL or path, double-click the entry, or select it and press F2.

    • Чтобы удалить элемент, выделите его и щелкните значок - .To remove an entry, select it, and then select the - icon.

  3. Необязательно: чтобы повысить производительность загрузки символов, перейдите в раздел Кэшировать символы в этом каталоге и введите путь к локальной папке, в которую серверы символов могут копировать символы.(Optional) To improve symbol loading performance, under Cache symbols in this directory, type a local folder path that symbol servers can copy symbols to.

    Примечание

    Не размещайте локальный кэш символов в защищенной папке, такой как C:\Windows или вложенные папки.Do not place the local symbol cache in a protected folder, like C:\Windows or a subfolder. Вместо этого следует использовать папку, для которой разрешены чтение и запись.Use a read-write folder instead.

    Примечание

    Если для проекта C++ задана переменная среды _NT_SYMBOL_PATH, она переопределяет значение, заданное в разделе Кэшировать символы в этом каталоге.For C++ projects, if you have the _NT_SYMBOL_PATH environment variable set, it will override the value set under Cache symbols in this directory.

  4. Укажите модули, которые отладчик должен загружать из расположений файлов символов (. pdb) при запуске.Specify the modules that you want the debugger to load from the Symbol file (.pdb) locations when it starts.

    • Выберите Все модули, кроме исключенных (значение по умолчанию), чтобы загружать все символы для всех модулей, кроме тех, что были явно исключены.Select Load all modules, unless excluded (the default) to load all the symbols for all modules in the symbol file location, except modules you specifically exclude. Чтобы исключить конкретные модули, выберите Укажите исключенные модули, щелкните значок + , введите имена исключаемых модулей и нажмите кнопку ОК.To exclude certain modules, select Specify excluded modules, select the + icon, type the names of the modules to exclude, and select OK.

    • Чтобы загружать из расположений файлов символов только заданные модули, выберите Загружать только указанные модули.To load only modules you specify from the symbol file locations, select Load only specified modules. Выберите Укажите включенные модули, щелкните значок + , введите имена включаемых модулей и нажмите кнопку ОК.Select Specify included modules, select the + icon, type the names of the modules to include, and then select OK. Файлы символов для других модулей не загружаются.The symbol files for other modules are not loaded.

  5. Нажмите кнопку ОК.Select OK.

Другие параметры символов для отладкиOther symbol options for debugging

Для настройки дополнительных параметров символов перейдите в раздел Сервис > Параметры > Отладка > Общие (или Отладка > Параметры > Общие):You can select additional symbol options in Tools > Options > Debugging > General (or Debug > Options > General):

  • Загружать экспорты из DLL (только машинный код)Load dll exports (Native only)

    Загружает таблицы экспорта библиотеки DLL для C/C++.Loads DLL export tables for C/C++. Дополнительные сведения см. в разделе Таблицы экспорта библиотеки DLL.For details, see DLL export tables. Поскольку на чтение данных экспорта для библиотеки DLL затрачиваются определенные ресурсы, по умолчанию загрузка таблиц экспорта отключена.Reading DLL export information involves some overhead, so loading export tables is turned off by default. Кроме того, вы можете использовать dumpbin /exports в командной строке сборки C/C++.You can also use dumpbin /exports in a C/C++ build command line.

  • Включить отладку на уровне адреса и Показывать дизассемблированный код, если исходный код недоступенEnable address level debugging and Show disassembly if source not available

    Дизассемблированный код отображается во всех случаях, когда исходные файлы или файлы символов не найдены.Always shows the disassembly when source or symbol files are not found.

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

  • Включить поддержку сервера системы управления версиямиEnable source server support

    Если исходный код на локальном компьютере отсутствует или PDB-файл не соответствует исходному коду, при отладке приложения используется сервер системы управления версиями.Uses Source Server to help debug an app when there is no source code on the local machine, or the .pdb file does not match the source code. Сервер системы управления версиями принимает запросы на файлы и возвращает сами файлы из этой системы.Source Server takes requests for files and returns the actual files from source control. Сервер системы управления версиями использует для работы библиотеку srcsrv.dll, которая нужна для чтения PDB-файла приложения.Source Server runs by using a DLL named srcsrv.dll to read the app's .pdb file. Этот PDB-файл содержит указатели на репозиторий исходного кода, а также команды, используемые для получения исходного кода из репозитория.The .pdb file contains pointers to the source code repository, as well as commands used to retrieve source code from the repository.

    Чтобы ограничить набор команд, которые библиотека srcsrv.dll может исполнять из PDB-файла приложения, можно включить список допустимых команд в файл srcsrv.ini.You can limit the commands that srcsrv.dll can execute from the app's .pdb file by listing the allowed commands in a file named srcsrv.ini. Поместите файл srcsrv.ini в ту же папку, что и файлы srcsrv.dll и devenv.exe.Place the srcsrv.ini file in the same folder as srcsrv.dll and devenv.exe.

    Важно!

    В PDB-файл приложения можно внедрять произвольные команды, поэтому убедитесь, что в файл srcsrv.ini включены только те из них, которые требуется выполнять.Arbitrary commands can be embedded in an app's .pdb file, so make sure to put only the commands you want to execute into a srcsrv.ini file. Любая попытка выполнить команду не из файла srcsvr.ini вызовет диалоговое окно подтверждения.Any attempt to execute a command not in the srcsvr.ini file will cause a confirmation dialog box to appear. Дополнительные сведения см. в статье Предупреждение системы безопасности. Отладчик должен выполнить команду без доверия.For more information, see Security Warning: Debugger Must Execute Untrusted Command.

    Параметры команд не проверяются, поэтому будьте внимательны с доверенными командами.No validation is done on command parameters, so be careful with trusted commands. Например, если вы включили команду cmd.exe в файл srcsrv.ini, пользователь-злоумышленник может указать параметры, которые сделают выполнение команды cmd.exe опасным.For example, if you listed cmd.exe in your srcsrv.ini, a malicious user might specify parameters on cmd.exe that would make it dangerous.

    Выберите этот элемент и нужные дочерние элементы.Select this item and the child items you want. Параметры Разрешить выполнение частично доверенных сборок (только управляемых) на сервере системы управления версиями и Всегда выполнять ненадежные команды исходного сервера без запроса могут повысить риски безопасности, описанные выше.Allow source server for partial trust assemblies (Managed only) and Always run untrusted source server commands without prompting can increase the security risks.

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

Параметры символов для компилятораCompiler symbol options

Если при выполнении сборки проекта из интегрированной среды разработки Visual Studio используется стандартная конфигурация сборки Отладка, компилятор C++ и управляемые компиляторы создают соответствующие файлы символов для кода.When you build a project from the Visual Studio IDE with the standard Debug build configuration, the C++ and managed compilers create the appropriate symbol files for your code. Параметры компилятора также можно задать в коде.You can also set compiler options in code.

Параметры .NET.NET options

Выполните сборку с использованием параметра /debug, чтобы создать PDB-файл.Build with /debug to create a .pdb file. Можно строить приложения с ключом /debug: full или /debug: pdbonly.You can build applications with /debug:full or /debug:pdbonly. При построении с ключом /debug:full создается отлаживаемый код.Building with /debug:full generates debuggable code. При сборке с ключом /debug:pdbonly создаются PDB-файлы, но не создается DebuggableAttribute, сообщающий JIT-компилятору о доступности отладочной информации.Building with /debug:pdbonly generates .pdb files, but does not generate the DebuggableAttribute that tells the JIT compiler that debug information is available. Ключ /debug:pdbonly следует использовать при создании PDB-файла для сборки выпуска, которая не подлежит отладке.Use /debug:pdbonly if you want to generate .pdb files for a release build that you do not want to be debuggable. Дополнительные сведения см. в разделе /debug (параметры компилятора C#) или /debug (Visual Basic).For more information, see /debug (C# compiler options) or /debug (Visual Basic).

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

  • Файлы VC<x>.pdb и <project>.pdbVC<x>.pdb and <project>.pdb files

    PDB-файл для C/C++ создается при сборке с параметрами /ZI или /Zi.A .pdb file for C/C++ is created when you build with /ZI or /Zi. В Visual C++Visual C++ параметр /Fd присваивает имя PDB-файлу, который создается компилятором.In Visual C++Visual C++, the /Fd option names the .pdb file the compiler creates. При создании проекта в Visual StudioVisual Studio с использованием интегрированной среды разработки используется параметр /Fd с целью создания PDB-файла с именем <project>.pdb.When you create a project in Visual StudioVisual Studio using the IDE, the /Fd option is set to create a .pdb file named <project>.pdb.

    При сборке приложения, написанного на C/C++, с использованием файла makefile и указанием параметра /ZI или /Zi без /Fd компилятор создает два описанных ниже PDB-файла:If you build your C/C++ application using a makefile, and you specify /ZI or /Zi without using /Fd, the compiler creates two .pdb files:

    • VC<x>.pdb, где <x> представляет версию компилятора Microsoft C++, например VC11.pdb.VC<x>.pdb, where <x> represents the version of the Microsoft C++ compiler, for example VC11.pdb

      Файл VC<x>.pdb хранит все отладочные данные для отдельных объектных файлов и располагается в том же каталоге, что и файл makefile проекта.The VC<x>.pdb file stores all debugging information for the individual object files, and resides in the same directory as the project makefile. Каждый раз, создавая объектный файл, компилятор C/C++ добавляет отладочную информацию в файл VC<x>.pdb.Each time it creates an object file, the C/C++ compiler merges debug information into VC<x>.pdb. Поэтому, даже если исходный файл включает общие файлы заголовков, такие как <windows.h> , определения типов (typedef) из этих заголовков сохраняются только один раз, а не включаются в каждый объектный файл.So even if every source file includes common header files such as <windows.h>, the typedefs from those headers are stored only once, rather than in every object file. Вставляемая информация включает информацию о типах, но не включает символьную информацию, такую как определения функций.The inserted information includes type information, but does not include symbol information, such as function definitions.

    • <project>.pdb<project>.pdb

      Файл <project>.pdb содержит все отладочные данные из EXE-файла проекта и располагается в подкаталоге \debug.The <project>.pdb file stores all debug information for the project's .exe file, and resides in the \debug subdirectory. Файл <project>.pdb содержит полные отладочные данные, включая прототипы функций, а не только сведения о типах, содержащиеся в файле <x>.pdb.The <project>.pdb file contains full debug information, including function prototypes, not just the type information found in VC<x>.pdb.

    Файлы VC<x>.pdb и <project>.pdb поддерживают добавочные обновления.Both the VC<x>.pdb and <project>.pdb files allow incremental updates. Компоновщик также включает путь к PDB-файлам в EXE-файл или DLL-файл, которые он создает.The linker also embeds the path to the .pdb files in the .exe or .dll file that it creates.

  • Таблицы экспорта библиотеки DLLDLL export tables

    Чтобы посмотреть, какие символы доступны в таблице экспорта для библиотеки DLL, воспользуйтесь командой dumpbin /exports.Use dumpbin /exports to see the symbols available in the export table of a DLL. Символьные данные из таблиц экспорта библиотеки DLL могут быть полезны при работе с сообщениями Windows, процедурами Windows (WindowProcs), объектами COM, при маршалинге или при работе с любой библиотекой DLL, для которой нет символов.Symbolic information from DLL export tables can be useful for working with Windows messages, Windows procedures (WindowProcs), COM objects, marshaling, or any DLL you don't have symbols for. Символы доступны для любой 32-разрядной системной библиотеки DLL.Symbols are available for any 32-bit system DLL. Вызовы функций перечисляются в том порядке, в котором эти функции вызываются, при этом текущая функция (наиболее глубоко вложенная) располагается наверху.The calls are listed in the calling order, with the current function (the most deeply nested) at the top.

    В выходных данных команды dumpbin /exports можно увидеть точное имя функции, включая символы, отличные от буквенно-цифровых.By reading the dumpbin /exports output, you can see the exact function names, including non-alphanumeric characters. Просмотр точных имен функций полезен для задания точки останова в функции, поскольку в отладчике имена функций могут быть усечены в других местах.Seeing exact function names is useful for setting a breakpoint on a function, because function names can be truncated elsewhere in the debugger. Дополнительные сведения см. в разделе dumpbin /exports.For more information, see dumpbin /exports.

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

Задайте для файла web.config вашего приложения ASP.NET режим отладки.Set the web.config file of your ASP.NET application to debug mode. В режиме отладки ASP.NET создает символы для динамически созданных файлов и включает присоединение отладчика к приложению ASP.NET.Debug mode causes ASP.NET to generate symbols for dynamically generated files and enables the debugger to attach to the ASP.NET application. Если проект создан на основе шаблона веб-проектов, Visual Studio устанавливает этот режим автоматически при запуске отладки.Visual Studio sets this automatically when you start to debug, if you created your project from the web projects template.

Управление символами при отладкеManage symbols while debugging

Для загрузки символов или изменения параметров символов во время отладки можно использовать окна Модули, Стек вызовов, Локальные, Видимые или Контрольные значения.You can use the Modules, Call Stack, Locals, Autos, or any Watch window to load symbols or change symbol options while debugging. Дополнительные сведения см. в разделе Дополнительные сведения о присоединении отладчика к приложению.For more information, see Get more familiar with how the debugger attaches to your app.

Работа с символами в окне "Модули"Work with symbols in the Modules window

В процессе отладки в окне Модули можно узнать, какие модули будут рассматриваться отладчиком в качестве пользовательского кода (или "моего кода"), а также проверить состояние загрузки символов для них.During debugging, the Modules window shows the code modules the debugger is treating as user code, or My Code, and their symbol loading status. Кроме того, в окне Модули вы можете отслеживать состояние загрузки символов, загружать символы и изменять параметры символов.You can also monitor symbol loading status, load symbols, and change symbol options in the Modules window.

Отслеживание или изменение расположений и параметров символов во время отладки:To monitor or change symbol locations or options while debugging:

  1. Чтобы открыть окно Модули во время отладки, выберите Отладка > Окна > Модули (или нажмите клавиши CTRL + ALT + U).To open the Modules window, while debugging, select Debug > Windows > Modules (or press Ctrl + Alt + U).
  2. В окне Модули щелкните правой кнопкой мыши заголовки Состояние символов или Файл символов либо любой модуль.In the Modules window, right-click the Symbol Status or Symbol File headers, or any module.
  3. В контекстном меню выберите один из следующих вариантов:In the context menu, select one of the following options:
ПараметрOption ОписаниеDescription
Загрузить символыLoad Symbols Отображается для модулей с пропущенными, не найденными или не загруженными символами.Appears for modules with skipped, not found, or not loaded symbols. Пытается загрузить символы из расположений, указанных на странице Параметры > Отладка > Символы.Attempts to load symbols from locations specified on the Options > Debugging > Symbols page. Если файл символов не удается обнаружить или загрузить, запускается Проводник, с помощью которого можно указать новое расположение для поиска.If the symbol file is not found or not loaded, launches File Explorer so you can specify a new location to search.
Сведения о загрузке символовSymbol Load Information Отображает сведения о расположении загруженного файла символов или о расположениях, в которых производился поиск, если отладчику не удалось найти файл.Shows the location of a loaded symbol file, or the locations that were searched if the debugger cannot find the file.
Параметры символовSymbol Settings Открывает страницу Параметры > Отладка > Символы, на которой можно изменять и добавлять расположения символов.Opens the Options > Debugging > Symbols page, where you can edit and add symbol locations.
Всегда загружать автоматическиAlways Load Automatically Добавляет выбранный файл символов в список файлов, которые автоматически загружаются отладчиком.Adds the selected symbol file to the list of files that are automatically loaded by the debugger.

Использование страниц "Символы не загружены" или "Нет исходного кода"Use the No Symbols Loaded/No Source Loaded pages

Отладчик может прервать выполнение в коде, для которого отсутствуют файлы символов или исходные файлы, в результате любого из следующих событий:There are several ways for the debugger to break into code that does not have symbol or source files available:

  • Шаг с заходом в код.Step into code.
  • Приостановка выполнения кода из-за точки останова или исключения.Break into code from a breakpoint or exception.
  • Переключение на другой поток.Switch to a different thread.
  • Изменение кадра стека двойным щелчком по кадру в окне Стек вызовов.Change the stack frame by double-clicking a frame in the Call Stack window.

Когда происходит любое из этих событий, отладчик отображает страницу Символы не загружены или Нет исходного кода, чтобы помочь найти и загрузить необходимые символы или исходный код.When this happens, the debugger displays the No Symbols Loaded or No Source Loaded pages to help you find and load the necessary symbols or source.

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

Использование страницы "Символы не загружены" для поиска и загрузки отсутствующих символов:To use the No Symbols Loaded document page to help find and load missing symbols:

  • Чтобы изменить путь поиска, выберите незанятый путь, либо выберите Новый путь или Новый путь VSTS и введите или выберите новый путь.To change the search path, select an unselected path, or select New Path or New VSTS Path and enter or select a new path. Выберите Загрузить, чтобы повторить поиск в путях и загрузить файл символов, если он будет найден.Select Load to search the paths again and load the symbol file if it is found.
  • Выберите Обзор для поиска <executable-name> , чтобы переопределить все параметры символов и повторить поиск по выбранным путям.To override any symbol options and retry the search paths, select Browse and find <executable-name>. Если файл символов будет найден, он будет загружен, иначе отобразится Проводник, в котором можно вручную выбрать файл символов.The symbol file is loaded if it is found, or File Explorer opens so you can manually select the symbol file.
  • Чтобы открыть страницу параметров символов для настройки поведения, выберите Изменить параметры символов (или Параметры > Отладка > Символы).To open the symbol settings page to configure behavior, select Change Symbol Settings (or choose Options > Debugging > Symbols).
  • (Дополнительно.) Чтобы однократно отобразить дизассемблированный код в новом окне, выберите Просмотреть дизассемблированный код. Чтобы всегда отображать дизассемблированный код, если файл символов или исходный файл не найдены, перейдите в диалоговое окно Параметры и установите соответствующий параметр.(Advanced) To show the disassembly in a new window one time, select view disassembly, or select Options dialog to set the option to always show the disassembly when source or symbol files are not found. Дополнительные сведения см. в статье Просмотр дизассемблированного кода в отладчике Visual Studio (C#, C++, Visual Basic, F#).For more information, see View disassembly code.
  • Чтобы отображать расположения, в которых был выполнен поиск, и результаты поиска, разверните элемент Сведения о загрузке символов.To show the locations searched and the outcome, expand Symbol load information.
  • Для кода C# можно также выполнить декомпиляцию исходного кода из страниц Символы не загружены или Нет исходного кода.For C# code, you can also choose to decompile the source code from the No Symbols Loaded or No Source Loaded pages.

Если отладчик находит PDB-файл после выполнения одного из этих действий и может извлечь исходный файл на основании информации в PDB-файле, отображается исходный код.If the debugger finds the .pdb file after you execute one of the options, and can retrieve the source file using the information in the .pdb file, it displays the source. В противном случае отображается страница Нет исходного кода, на которой описывается проблема и приводятся ссылки на действия, которые могут решить ее.Otherwise, it displays a No Source Loaded page that describes the issue, with links to actions that might resolve the issue.

Добавление путей поиска исходных файлов в решение:To add source file search paths to a solution:

Вы можете указать расположения, в которых отладчик будет искать исходные файлы, а также исключить из поиска определенные файлы.You can specify the locations the debugger searches for source files, and exclude specific files from the search.

  1. Выберите решение в обозревателе решений и затем щелкните значок Свойства, нажмите клавиши ALT+ВВОД либо щелкните это решение правой кнопкой мыши и выберите пункт Свойства.Select the solution in Solution Explorer, and then select the Properties icon, press Alt+Enter, or right-click and select Properties.

  2. Выберите Исходные файлы отладки.Select Debug Source Files.

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

  3. В разделе Каталоги, содержащие исходный код введите или выберите расположения исходного кода для поиска.Under Directories containing source code, type or select source code locations to search. Щелкните значок Новая строка для добавления дополнительных расположений, значки со стрелками вверх и вниз для изменения их порядка либо значок X для их удаления.Use the New Line icon to add more locations, the Up and Down arrow icons to reorder them, or the X icon to delete them.

    Примечание

    Отладчик выполняет поиск только в указанном каталоге.The debugger searches only the specified directory. Любые подкаталоги, в которых требуется осуществлять поиск, должны быть внесены в список.You must add entries for any subdirectories that you want to search.

  4. В разделе Не выполнять поиск следующих исходных файлов введите имена исходных файлов, исключаемых из поиска.Under Do not look for these source files, type the names of source files to exclude from search.

  5. Нажмите кнопку ОК или кнопку Применить.Select OK or Apply.

См. такжеSee also