Spécifiez les fichiers de symbole (.pdb) et les fichiers source dans le débogueur Visual Studio.Specify symbol (.pdb) and source files in the Visual Studio debugger

Un fichier programme (.pdb) de la base de données, également appelé fichier de symboles, mappe les identificateurs que vous créez dans le code source pour les classes, méthodes et autre code pour les identificateurs qui sont utilisés dans les fichiers exécutables compilés de votre projet.A program database (.pdb) file, also called a symbol file, maps the identifiers that you create in source code for classes, methods, and other code to the identifiers that are used in the compiled executables of your project. Le fichier .pdb mappe également les instructions du code source aux instructions d'exécution des fichiers exécutables.The .pdb file also maps the statements in the source code to the execution instructions in the executables. Le débogueur utilise ces informations pour déterminer les deux éléments d’information clés :The debugger uses this information to determine two key pieces of information:

  • Nom de la source fichier et numéro de ligne à afficher dans l’IDE de Visual StudioName of the source file and line number to be displayed in the Visual Studio IDE
  • Emplacement dans le fichier exécutable pour arrêter lorsque vous définissez un point d’arrêtLocation in the executable to stop at when you set a breakpoint

Un fichier de symboles contient également l'emplacement d'origine des fichiers sources, et éventuellement, l'emplacement d'un serveur source d'où les fichiers sources peuvent être extraits.A symbol file also contains the original location of the source files, and optionally, the location of a source server where the source files can be retrieved from.

Conseil

Si vous souhaitez déboguer le code en dehors de votre code source du projet, telles que le code de Windows ou tiers appelé par votre projet, vous devez spécifier l’emplacement du fichier .pdb (et éventuellement, les fichiers sources du code externe) et que ces fichiers doivent correspondre exactement à la génération de t Il exécutables.If you want to debug code outside your project source code, such as Windows code or third-party code your project calls, you have to specify the location of the .pdb (and optionally, the source files of the external code) and those files need to exactly match the build of the executables.

Où le débogueur recherche les fichiers de symboles ?Where does the debugger search for symbol files?

  1. Emplacement spécifié à l'intérieur de la DLL ou du fichier exécutable.The location that is specified inside the DLL or the executable file.

    (Par défaut, si vous avez développé une DLL ou un fichier exécutable sur votre ordinateur, l'éditeur de liens place le chemin d'accès complet et le nom du fichier .pdb associé à l'intérieur de la DLL ou du fichier exécutable.(By default, if you have built a DLL or an executable file on your computer, the linker places the full path and file name of the associated .pdb file inside the DLL or the executable file. Le débogueur vérifie d'abord si le fichier de symboles existe dans l'emplacement spécifié dans la DLL ou le fichier exécutable.The debugger first checks to see if the symbol file exists in the location that is specified inside the DLL or the executable file. Cela est utile, car vous avez toujours des symboles disponibles pour le code que vous avez compilé sur votre ordinateur.)This is helpful, because you always have symbols available for code that you have compiled on your computer.)

  2. fichiers .pdb qui sont présents dans le même dossier que le fichier DLL ou le fichier exécutable..pdb files that are present in the same folder as the DLL or executable file.

  3. Tous les emplacements spécifié dans les options du débogueur pour les fichiers de symboles.Any locations specified in the debugger options for symbol files.

    • Tout dossier de cache de symboles local.Any local symbol cache folders.

    • N’importe quel réseau, internet, ou les serveurs de symboles local et emplacements spécifiés, tels que le serveur de symboles Microsoft (si activé).Any network, internet, or local symbol servers and locations that are specified, such as the Microsoft symbol server (if enabled).

Note

Avant Visual Studio 2012, quand vous déboguiez du code managé sur un appareil distant, vous deviez placer les fichiers de symboles sur l’ordinateur distant.Before Visual Studio 2012, when you debugged managed code on a remote device you needed to put the symbol files on the remote machine. À compter de Visual Studio 2012, tous les fichiers de symboles doivent se trouver sur l’ordinateur local ou dans un emplacement spécifié dans les options du débogueur.Starting with Visual Studio 2012, all symbol files must be located on the local machine or in a location specified in the debugger options.

Pourquoi les fichiers de symboles doivent-ils correspondre exactement aux fichiers exécutables ?Why do symbol files need to exactly match the executable files?

Le débogueur chargera uniquement un fichier .pdb pour un fichier exécutable qui correspond exactement au fichier .pdb créé lors de la génération du fichier exécutable (autrement dit, le fichier .pdb doit être le fichier d'origine ou une copie du fichier .pdb d'origine).The debugger will load only a .pdb file for an executable file that exactly matches the .pdb file that was created when the executable was built (that is, the .pdb must be the original or a copy of the original .pdb file). Étant donné que le compilateur est optimisé pour la vitesse de compilation en plus de sa tâche principale qui consiste à créer du code correct et efficace, la disposition effective d’un fichier exécutable peut changer même si le code lui-même n’a pas changé.Because the compiler is optimized for compilation speed in addition to its main task of creating correct and efficient code, the actual layout of an executable can change even if the code itself has not changed. Pour plus d’informations, consultez l’entrée de blog intitulée Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with? (Pourquoi Visual Studio exige-t-il que les fichiers de symboles du débogueur correspondent exactement aux fichiers binaires avec lesquels ils ont été créés ?)For more information see Why does Visual Studio require debugger symbol files to exactly match the binary files that they were built with?

Configurer l’emplacement où le débogueur recherche pour les fichiers de symboles et le comportement de chargement des symbolesConfigure where the debugger looks for symbol files and symbol loading behavior

Lorsque vous déboguez un projet dans l’IDE de Visual Studio, le débogueur charge automatiquement les fichiers de symboles qui sont trouvent dans le répertoire du projet.When you debug a project in the Visual Studio IDE, the debugger automatically loads symbol files that are located in the project directory. Vous pouvez spécifier d’autres chemins de recherche et serveurs de symboles pour Microsoft, Windows ou des composants tiers dans Outils > Options > Débogage > symboles.You can specify alternative search paths and symbol servers for Microsoft, Windows, or third-party components in Tools > Options > Debugging > Symbols. Vous pouvez également spécifier que vous souhaitez que le débogueur charge automatiquement des symboles des modules spécifiques.You can also specify specific modules that you want the debugger to automatically load symbols for. Et vous pouvez ensuite modifier ces paramètres manuellement lorsque vous déboguez activement.And you can then change these settings manually while you are actively debugging.

  1. Dans Visual Studio, ouvrez le Outils > Options > Débogage > symboles page.In Visual Studio, open the Tools > Options > Debugging > Symbols page.

    Outils - Options - débogage - page symbolesTools - Options - Debugging - Symbols page

  2. Choisissez le dossier outils/ Options/ débogage/icône de dossier de symboles icône.Choose the folder Tools/ Options/ Debugging/Symbols  folder icon icon. Le texte modifiable s'affiche dans la zone Emplacements du fichier de symboles (.pdb) .Editable text appears in the Symbol file (.pdb) locations box.

  3. Tapez l'URL ou le chemin d'accès du serveur de symboles ou de l'emplacement de symboles.Type the URL or directory path of the symbol server or symbol location. La saisie semi-automatique des instructions vous aide à rechercher le format correct.Statement completion helps you find the correct format.

    Vous pouvez utiliser Ctrl + haut et Ctrl + bas pour modifier l’ordre de chargement des emplacements de symboles.You can use Ctrl + Up and Ctrl + Down to change the loading order for symbol locations. Appuyez sur F2 pour modifier une URL ou chemin d’accès du répertoire.Press F2 to edit a URL or directory path.

  4. Pour améliorer les performances de chargement de symboles, tapez le chemin d'accès d'un répertoire local dans lequel les symboles peuvent être copiés par les serveurs de symboles dans la zone Mettre en cache les symboles dans ce répertoire d'un répertoire local dans lequel les symboles peuvent être copiés.To improve symbol loading performance type the path a local directory where symbols can be copied by symbol servers in the Cache symbols in this directory box a local directory that symbols can be copied to.

    Note

    Ne placez pas votre cache de symboles dans un dossier protégé (tel que le dossier C:\Windows ou un de ses sous-dossiers).Do not place your symbol cache in a protected folder (such as the C:\Windows folder or one of its subfolders). Utilisez plutôt un dossier en lecture-écriture.Use a read-write folder instead.

Spécifier le comportement de chargement des symbolesSpecify symbol loading behavior

Vous pouvez spécifier les fichiers qui doivent être chargés automatiquement à partir des emplacements de zone Emplacements du fichier de symboles (.pdb) lorsque vous commencez le débogage.You can specify the files that you want to be loaded automatically from Symbol file (.pdb) locations box locations when you start debugging. Les fichiers de symboles contenus dans le répertoire du projet sont toujours chargés.Symbol files in the project directory are always loaded.

  1. Sélectionnez Tous les modules, sauf exclus pour charger tous les symboles pour tous les modules à l'exception de ceux que vous spécifiez lorsque vous choisissez le lien Spécifier les modules exclus .Choose All modules, unless excluded to load all the symbols for all modules except those that you specify when you choose the Specify excluded modules link.

  2. Choisissez l'option Modules spécifiés uniquement puis choisissez Spécifier les modules pour répertorier les modules des fichiers de symboles que vous voulez charger automatiquement.Choose the Only specified modules option and then choose Specify modules to list the modules that you symbol files that you want loaded automatically. Les fichiers de symboles d'autres modules sont ignorés.The symbol files for other modules are ignored.

Spécifier des options de symbole supplémentairesSpecify additional symbol options

Vous pouvez également définir les options suivantes sur le Outils > Options > Débogage > Général page :You can also set the following options on the Tools > Options > Debugging > General page:

Charger les exportations de DLL (natif uniquement)Load DLL exports (native only)

Lorsqu'elle est sélectionnée, cette option charge les tables d'exportation de DLL.When selected, loads DLL export tables. Les informations symboliques de tables d'exportation de DLL peuvent être utiles si vous utilisez des messages Windows, des procédures Windows (WindowProcs), des objets COM, le marshaling ou toute DLL pour laquelle vous n'avez pas de symbole.Symbolic information from DLL export tables can be useful if you are working with Windows messages, Windows procedures (WindowProcs), COM objects, or marshaling, or any DLL for which you do not have symbols. La lecture des informations d'exportation des DLL implique une certaine charge mémoire.Reading DLL export information involves some overhead. Par conséquent, cette fonctionnalité est désactivée par défaut.Therefore, this capability is turned off by default.

Pour savoir quels symboles sont disponibles dans la table d'exportation d'une DLL, utilisez dumpbin /exports.To see what symbols are available in the export table of a DLL, use dumpbin /exports. Il existe des symboles pour toutes les DLL système 32 bits.Symbols are available for any 32-bit system DLL. En lisant le résultat de dumpbin /exports , vous apprenez le nom exact de la fonction, y compris les caractères non alphanumériques.By reading the dumpbin /exports output, you can see the exact function name, including non-alphanumeric characters. Cette information peut être utile pour définir un point d'arrêt sur une fonction.This is useful for setting a breakpoint on a function. Les noms de fonctions provenant de tables d'exportation de DLL peuvent s'afficher sous une forme tronquée dans les autres parties du débogueur.Function names from DLL export tables might appear truncated elsewhere in the debugger. Les appels sont répertoriés dans l'ordre chronologique inverse, la fonction en cours (la plus profondément imbriquée) apparaissant en tête de liste.The calls are listed in the calling order, with the current function (the most deeply nested) at the top. Pour plus d'informations, consultez dumpbin /exports.For more information, see dumpbin /exports.

Utiliser des serveurs de symboles pour rechercher des fichiers de symboles qui ne sont pas sur votre ordinateur localUse symbol servers to find symbol files not on your local machine

Visual StudioVisual Studio peut télécharger les fichiers de symboles de débogage à partir des serveurs de symboles qui implémentent le protocole symsrv. can download debugging symbol files from symbol servers that implement the symsrv protocol. Visual Studio Team Foundation Server et les outils de débogage pour Windows sont deux outils qui peuvent implémenter des serveurs de symboles.Visual Studio Team Foundation Server and the Debugging Tools for Windows are two tools that can implement symbol servers. Vous spécifiez les serveurs de symboles à utiliser dans la boîte de dialogue Options de Visual Studio.You specify the symbol servers to use in the VS Options dialog box.

Les serveurs de symboles que vous pouvez utiliser sont les suivants :Symbol servers that you might use include:

Serveurs de symboles publics MicrosoftMicrosoft public symbol servers

Pour déboguer un incident survenu durant un appel à une DLL système ou une bibliothèque tierce, vous devrez souvent utiliser des fichiers .pdb système, qui contiennent les symboles des fichiers DLL, EXE et pilotes de périphériques de Windows.To debug a crash that occurs during a call to a system DLL or to a third-party library, you will often need system .pdb files, which contain symbols for Windows DLLs, EXEs, and device drivers. Vous pouvez obtenir ces symboles auprès des serveurs de symboles publics Microsoft.You can obtain these symbols from the Microsoft public sysmbol servers. Les serveurs de symboles publics Microsoft fournissent des symboles pour les systèmes d'exploitation Windows, en plus de MDAC, d'IIS, d'ISA et du .NET Framework.NET Framework.The Microsoft public symbol servers provide symbols for Windows operating systems, in addition to MDAC, IIS, ISA, and the .NET Framework.NET Framework.

Pour utiliser les serveurs de symboles Microsoft, choisissez Options et paramètres dans le menu Déboguer , puis choisissez Symboles.To use the Microsoft symbol servers, choose Options and Settings on the Debug menu and then choose Symbols. Sélectionnez Serveurs de symboles Microsoft.Select Microsoft Symbol Servers.

Serveurs de symboles sur un réseau interne ou sur votre ordinateur localSymbol servers on an internal network or on your local machine

Votre équipe ou société peut créer les serveurs de symboles de vos propres produits et comme cache des symboles à partir des sources externes.Your team or company can create symbol servers for your own products and as a cache for symbols from external sources. Vous pouvez avoir un serveur de symboles sur votre propre ordinateur.You might have a symbol server on your own machine. Vous pouvez entrer l'emplacement des serveurs de symboles en tant qu'URL ou comme chemin sur la page Débogage/Symboles de la boîte de dialogue Options.You can enter the location of the symbol servers as a URL or as a path on the Debugging/Symbols page of the VS Option Dialog.

Serveurs de symboles tiersThird-party symbol servers

Les fournisseurs tiers des applications et des bibliothèques Windows peuvent donner accès au serveur de symboles sur Internet.Third-party providers of Windows applications and libraries can provide access to symbol server on the internet. Vous entrez également l'URL de ces serveurs de symboles sur la page Débogage/Symboles ,You also enter the URL of these symbol servers on the Debugging/Symbols page,

Note

Si vous utilisez un serveur de symboles autre que les serveurs de symboles publics Microsoft, assurez-vous que ce serveur et son chemin d'accès sont dignes de confiance.If you use a symbol server other than the Microsoft public symbol servers, make sure that the symbol server and its path are trustworthy. Étant donné que les fichiers de symboles peuvent contenir du code exécutable arbitraire, vous vous exposez à des menaces de sécurité.Because symbol files can contain arbitrary executable code, you can become exposed to security threats.

Rechercher et charger des symboles pendant le débogageFind and load symbols while debugging

Lorsque le débogueur est en mode arrêt, vous pouvez charger des symboles pour un module qui a été précédemment exclu par les options du débogueur ou que le compilateur n'a pas pu trouver.At any time that the debugger is in break mode, you can load symbols for a module that was previously excluded by debugger options or that the compiler could not find. Vous pouvez charger les symboles à partir des menus contextuels des fenêtres Pile des appels, Modules, Variables locales, Automatique et Espion.You can load symbols from the shortcut menus of the Call Stack, Modules, Locals, Autos, and all Watch windows. Si le débogueur s'arrête dans du code qui ne contient pas de fichiers sources ou de symboles disponibles, une fenêtre de document s'affiche.If the debugger breaks in code that does not have symbol or source files available, a document window appears. Vous trouverez des informations sur les fichiers manquants et pourrez prendre des mesures pour les localiser et les charger.Here you can find information about the missing files and take actions to locate and load them.

Rechercher des symboles à l'aide des pages de document Aucun symbole n'a été chargéFind symbols with the No Symbols Loaded document pages

Il existe plusieurs moyens pour que le débogueur se divise en code n'ayant pas de symboles disponibles :There are a number of ways for the debugger to break into code that does not have symbols available:

  1. Codage en mode pas à pas détaillé.Stepping into code.

  2. Arrêt dans le code depuis un point d'arrêt ou une exception.Breaking into code from a breakpoint or exception.

  3. Passage à un autre thread.Switching to a different thread.

  4. Modification du frame de pile en double-cliquant sur un frame dans la fenêtre Pile des appels.Changing the stack frame by double-clicking a frame in the Call Stack window.

    Lorsqu'un de ces événements se produit, le débogueur affiche la page Aucun symbole n'a été chargé pour vous aider à identifier et à charger les symboles nécessaires.When one of these events occurs, the debugger displays the No Symbols Loaded page to help you find and load the necessary symbols.

    Aucune page symboles chargésNo Symbols Loaded page

  • Pour modifier les chemins de recherche, choisissez un chemin d'accès non sélectionné ou choisissez Nouveau et entrez un nouveau chemin d'accès.To change the search paths, choose an unselected path or choose New and enter a new path. Sélectionnez Charger pour rechercher à nouveau les chemins d'accès et charger le fichier de symboles s'il est trouvé.Choose Load to search the paths again and load the symbol file if it is found.

  • Choisissez Parcourir et rechercher ***-nom du fichier exécutable...* pour remplacer toutes les options de symbole et réessayer les chemins de recherche.Choose Browse and findexecutable-name... to override any symbol options and retry the search paths. Le fichier de symboles est chargé s'il est trouvé, ou un Explorateur de fichiers s'affiche pour sélectionner manuellement le fichier de symboles.The symbol file is loaded if it is found, or a File Explorer is displayed for you to manually select the symbol file.

  • Choisissez modifier les paramètres des symboles... pour afficher les débogage > symboles page de la boîte de dialogue Options Visual Studio.Choose Change Symbol Settings ... to display the Debugging > Symbols page of the VS Options dialog.

  • Choisissez afficher le code machine pour afficher le code machine dans une nouvelle fenêtre.Choose view disassembly to show the disassembly in a new window one time.

  • Pour toujours afficher le code machine lorsque la source ou les fichiers de symboles sont introuvables, choisissez le lien Boîte de dialogue Options , puis sélectionnez Activer le débogage au niveau de l'adresse et Afficher le code machine si la source n'est pas disponible.To always show the disassembly when the source or symbol files are not found, choose the Options dialog link, and select both Enable address level debugging and Show disassembly if source not available.

    Options / débogage / général code machine optionsOptions / Debugging  / General disassembly options

    Changer les options de symbole depuis le menu contextuelChange symbol options from the shortcut menu

    Lorsque vous êtes en mode arrêt, vous pouvez rechercher et charger les symboles des éléments affichés dans les fenêtres Pile des appels, Modules, Variables locales, Automatique et Espion.While you are in break mode, you can find and load symbols for items that are displayed in the Call Stack, Modules, Locals, Autos, and all Watch windows. Sélectionnez un élément dans la fenêtre, ouvrez le menu contextuel, puis sélectionnez l'une des options suivantes :Select an item in the window, open the shortcut menu, and choose one of the following options:

OptionOption DescriptionDescription
Charger les symbolesLoad Symbols Tente de charger les symboles à partir des emplacements spécifiés sur le débogage/symboles page de la Options boîte de dialogue.Attempts to load symbols from locations specified on the Debugging/Symbols page of the Options dialog box. Si le fichier de symboles est introuvable, l'Explorateur de fichiers est lancé afin que vous puissiez spécifier un nouvel emplacement de recherche.If the symbol file cannot be found, File Explorer is launched so that you can specify a new location to search.
Informations sur le chargement de symbolesSymbol Load Information Présente des informations indiquant l'emplacement d'un fichier de symboles chargé, ou les emplacements ayant fait l'objet d'une recherche si le débogueur ne trouve pas le fichier.Presents information showing the location of a loaded symbol file, or the locations that were searched if the debugger cannot find the file.
Paramètres des symboles...Symbol Settings... Ouvre le débogage/symboles page de la VS Options boîte de dialogue.Opens the Debugging/Symbols page of the VS Options dialog box.
Toujours charger automatiquementAlways Load Automatically Ajoute le fichier de symboles à la liste des fichiers qui sont automatiquement chargés par le débogueur.Adds the symbol file to the list of files that are automatically loaded by the debugger.

Définir des options du compilateur pour les fichiers de symbolesSet compiler options for symbol files

Lorsque vous générez votre projet à partir du VS IDE et utilisez la configuration de build Debug standard, C++ et les compilateurs managés créent les fichiers de symboles appropriés pour votre code.When you build your project from the VS IDE and use the standard Debug build configuration, the C++ and managed compilers create the appropriate symbols files for your code. Vous pouvez aussi définir les options du compilateur sur la ligne de commande pour créer les fichiers de symboles.You can also set compiler options on the command line to create the symbol files.

Options C++C++ options

Un fichier .pdb (base de données du programme) contient des informations sur l'état du projet et le débogage, qui permettent l'édition des liens incrémentielle pour la configuration Debug de votre programme.A program database (.pdb) file holds debugging and project state information that allows incremental linking of a Debug configuration of your program. Un fichier .pdb est créé lors de la génération à l'aide de /ZI ou /Zi (pour C/C++).A .pdb file is created when you build with /ZI or /Zi (for C/C++).

Dans Visual C++Visual C++, l'option /Fd permet de nommer le fichier .pdb créé par le compilateur.In Visual C++Visual C++, the /Fd option names the .pdb file created by the compiler. Quand vous créez un projet dans Visual StudioVisual Studio à l’aide des Assistants, l’option /Fd est définie pour créer un fichier .pdb nommé projet.pdb.When you create a project in Visual StudioVisual Studio using wizards, the /Fd option is set to create a .pdb file named project.pdb.

Si vous générez votre application C/C++ à l’aide d’un makefile et que vous spécifiez /ZI ou /Zi sans /Fd, vous obtenez finalement deux fichiers .pdb :If you build your C/C++ application using a makefile, and you specify /ZI or /Zi without /Fd, you end up with two .pdb files:

  • VCx.pdb, où x représente la version de Visual C++, par exemple VC11.pdb.VCx.pdb, where x represents the version of Visual C++, for example VC11.pdb. Ce fichier stocke toutes les informations de débogage concernant les fichiers OBJ individuels et réside dans le même répertoire que le makefile du projet.This file stores all debugging information for the individual OBJ files and resides in the same directory as the project makefile.

  • project.pdb Ce fichier stocke toutes les informations de débogage concernant le fichier .exe.project.pdb This file stores all debug information for the.exe file. Pour C/C++, il réside dans le sous-répertoire \debug.For C/C++, it resides in the \debug subdirectory.

    Chaque fois qu'il crée un fichier OBJ, le compilateur C/C++ fusionne les informations de débogage dans VCx.pdb.Each time it creates an OBJ file, the C/C++ compiler merges debug information into VCx.pdb. Celles-ci se composent d'informations de type, mais pas d'informations de symbole telles que les définitions de fonctions.The inserted information includes type information but does not include symbol information such as function definitions. Par conséquent, même si chaque fichier source inclut des fichiers d’en-tête courants tels que <windows.h >, les typedefs de ces en-têtes sont stockées une seule fois, plutôt que dans chaque fichier OBJ.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 being in every OBJ file.

    L'Éditeur de liens crée projet.pdb, qui contient les informations de débogage concernant le fichier EXE du projet.The linker creates project.pdb, which contains debug information for the project's EXE file. Le fichier projet.pdb contient toutes les informations de débogage, y compris les prototypes de fonction et pas seulement les informations de type présentes dans VCx.pdb.The project.pdb file contains full debug information, including function prototypes, not just the type information found in VCx.pdb. Les deux fichiers .pdb autorisent les mises à jour incrémentielles.Both .pdb files allow incremental updates. L'Éditeur de liens incorpore également le chemin d'accès au fichier .pdb dans le fichier .exe ou .dll qu'il crée.The linker also embeds the path to the .pdb file in the .exe or .dll file that it creates.

    Le débogueur Visual StudioVisual Studio utilise le chemin d'accès au fichier .pdb dans le fichier EXE ou DLL pour rechercher le fichier project.pdb.The Visual StudioVisual Studio debugger uses the path to the .pdb file in the EXE or DLL file to find the project.pdb file. Si le débogueur ne peut pas trouver le fichier .pdb à cet emplacement ou que le chemin d'accès n'est pas valide (par exemple, lorsque le projet a été déplacé sur un autre ordinateur), le débogueur recherche le chemin d'accès contenant le fichier EXE, les chemins d'accès aux symboles spécifiés dans la boîte de dialogue Options (dossierDébogage , nœud Symboles ).If the debugger cannot find the .pdb file at that location or if the path is invalid (for example, if the project was moved to another computer), the debugger searches the path containing the EXE, the symbol paths specified in the Options dialog box (Debugging folder, Symbols node). Le débogueur ne chargera pas un fichier .pdb qui ne correspond pas au fichier exécutable débogué.The debugger will not load a .pdb file that does not match the executable being debugged. Si le débogueur ne trouve aucun fichier .pdb, la boîte de dialogue Rechercher des symboles qui s'affiche vous permet de rechercher des symboles ou d'ajouter des emplacements supplémentaires au chemin de recherche.If the debugger cannot find a .pdb file, a Find Symbols dialog box appears, which allows you to search for symbols or to add additional locations to the search path.

    Options du .NET Framework.NET Framework options

    Un fichier .pdb (base de données du programme) contient des informations sur l'état du projet et le débogage, qui permettent l'édition des liens incrémentielle pour la configuration Debug de votre programme.A program database (.pdb) file holds debugging and project state information that allows incremental linking of a debug configuration of your program. Un fichier .pdb est créé quand vous générez avec /debug.A .pdb file is created when you build with /debug. Vous pouvez générer des applications avec /debug:full ou /debug:pdbonly.You can build applications with /debug:full or /debug:pdbonly. La génération avec /debug:full génère du code pouvant être débogué.Building with /debug:full generates debuggable code. La génération avec /debug:pdbonly permet d’obtenir des fichiers .pdb mais ne génère pas le DebuggableAttribute indiquant au compilateur JIT que des informations de débogage sont disponibles.Building with /debug:pdbonly generates .pdb files but does not generate the DebuggableAttribute that tells the JIT compiler that debug information is available. Utilisez /debug:pdbonly si vous souhaitez générer des fichiers .pdb pour une version Release sans qu’elle puisse être déboguée.Use /debug:pdbonly if you want to generate .pdb files for a release build that you do not want to be debuggable. Pour plus d'informations, consultez /debug (C# Compiler Options) ou /debug (Visual Basic).For more information, see /debug (C# Compiler Options) or /debug (Visual Basic).

    Le débogueur Visual StudioVisual Studio utilise le chemin d'accès au fichier .pdb dans le fichier EXE ou DLL pour rechercher le fichier project.pdb.The Visual StudioVisual Studio debugger uses the path to the .pdb file in the EXE or DLL file to find the project.pdb file. Si le débogueur ne peut pas trouver le fichier .pdb à cet emplacement ou si le chemin d'accès n'est pas valide, le débogueur recherche le chemin d'accès qui contient l'EXE, puis les chemins d'accès aux symboles spécifiés dans la boîte de dialogue Options .If the debugger cannot find the .pdb file at that location, or if the path is invalid, the debugger searches the path containing the EXE, and then the symbol paths specified in the Options dialog box. Ce chemin d'accès est en général le dossier Débogage du nœud Symboles .This path is generally the Debugging folder in the Symbols node. Le débogueur ne chargera pas un fichier .pdb qui ne correspond pas au fichier exécutable débogué.The debugger will not load a .pdb file that does not match the executable file being debugged. Si le débogueur ne trouve aucun fichier .pdb, la boîte de dialogue Rechercher des symboles qui s'affiche vous permet de rechercher des symboles ou d'ajouter des emplacements supplémentaires au chemin de recherche.If the debugger cannot find a .pdb file, a Find Symbols dialog box appears, which allows you to search for symbols or to add additional locations to the search path.

    Applications WebWeb applications

    Le fichier de configuration de votre application (Web.config) doit avoir pour valeur mode débogage.The configuration file of your application (Web.config) must be set to debug mode. En mode débogage, ASP.NET génère des symboles pour les fichiers générés dynamiquement et le débogueur peut être attaché à l'application 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 définit cela automatiquement lorsque vous commencez à déboguer, si vous avez créé votre projet à partir du modèle de projets Web.Visual Studio sets this automatically when you start to debug, if you created your project from the Web projects template.

Rechercher les fichiers sourcesFind source files

Où le débogueur recherche les fichiers sourceWhere the debugger searches for source files

Le débogueur recherche des fichiers sources dans les emplacements suivants :The debugger looks for source files in the following locations:

  1. Fichiers ouverts dans l'IDE de l'instance Visual Studio qui a lancé le débogueur.Files that are open in the IDE of the Visual Studio instance that launched the debugger.

  2. Fichiers dans la solution ouverte dans l’instance Visual Studio.Files in the solution that is open in the Visual Studio instance.

  3. Les répertoires sont spécifiés dans le propriétés communes/déboguer les fichiers sources page dans les propriétés de la solution.Directories that are specified in the Common Properties/Debug Source Files page in the properties of the solution. (Dans le l’ Explorateur de solutions, sélectionnez le nœud de la solution, cliquez dessus avec le bouton droit, puis sélectionnez Propriétés.(In the Solution Explorer, select the solution node, right-click, and select Properties. ))

  4. Informations sources du .pdb du module.The source information of the .pdb of the module. Il peut s'agir de l'emplacement du fichier source lorsque le module a été généré, ou d'une commande d'un serveur source.This can be the location of the source file when the module was built, or it can be a command to a source server.

Rechercher et charger des fichiers sources avec les pages non Source/No symboles chargésFind and load source files with the No Source/No Symbols Loaded pages

Lorsque le débogueur interrompt l'exécution à un emplacement où le fichier source n'est pas disponible, il affiche les pages Aucune source n'a été chargée ou Aucun symbole n'a été chargé qui peuvent vous aider à trouver le fichier source.When the debugger breaks execution at a location where the source file is not available, it will display the No Source Loaded or No Symbols Loaded pages that can help you find the source file. Le message Aucun symbole n'a été chargé apparaît lorsque le débogueur ne trouve aucun fichier de symboles (.pdb) pour le fichier exécutable pour terminer sa recherche.The No Symbols Loaded appears when the debugger cannot find a symbol (.pdb) file for the executable file to complete its search. La page Aucun symbole fournit des options de recherche pour le fichier.The No Symbols page provides options to search for the file. Si le fichier .pdb est trouvé après l'exécution d'une des options et que le débogueur peut récupérer le fichier source à l'aide des informations contenues dans le fichier de symboles, la source est affichée.If the .pdb is found of after you execute one of the options and the debugger can retrieve the source file using the information in the symbols file, the source is displayed. Sinon, la page Aucune source n'a été chargée apparaît et décrit le problème.Otherwise, a No Source Loaded page appears that describes the issue. La page affiche les liens d'option qui peuvent effectuer des actions pouvant résoudre le problème.The page displays option links that can perform actions that might resolve the issue.

Ajouter des chemins de recherche de fichier source à une solutionAdd source file search paths to a solution

Vous pouvez spécifier le réseau ou les répertoires locaux sur lesquels rechercher les fichiers sources.You can specify a network or local directories to search for source files.

  1. Sélectionnez la solution dans l'Explorateur de solutions, puis choisissez Propriétés dans le menu contextuel.Select the solution in Solution Explorer and then choose Properties from the shortcut menu.

  2. Sous le nœud Propriétés communes , choisissez Fichiers sources pour le débogage.Under the Common Properties node, choose Debug Source Files.

  3. Cliquez sur le dossier outils/ Options/ débogage/icône de dossier de symboles icône.Click the folder Tools/ Options/ Debugging/Symbols  folder icon icon. Le texte modifiable apparaît dans la liste Répertoires contenant du code source .Editable text appears in the Directories containing source code list.

  4. Ajoutez le chemin que vous souhaitez rechercher.Add the path that you want to search.

    Notez que seul le répertoire spécifié est recherché.Note that only the specified directory is searched. Vous devez ajouter des entrées pour tous les sous-répertoires à explorer.You must add entries for any subdirectories that you want to search.

Utiliser des serveurs sourcesUse source servers

Lorsqu'il n'y a pas de code source sur l'ordinateur local ou si le fichier .pdb ne correspond pas au code source, le serveur source peut vous aider à déboguer une application.When there is no source code on the local machine or the .pdb file does not match the source code, you can use Source Server to help debug an application. Il prend les demandes de fichiers et retourne les fichiers réels.Source Server takes requests for files and returns the actual files. Le serveur source s'exécute au moyen d'un fichier DLL nommé srcsrv.dll.Source Server runs by means of a DLL file named srcsrv.dll. Le serveur source lit le fichier .pdb de l'application, qui contient des pointeurs vers le référentiel de code source ainsi que des commandes utilisées pour extraire le code source du référentiel.Source Server reads the application's .pdb file, which contains pointers to the source code repository, as well as commands used to retrieve source code from the repository. Vous pouvez limiter les commandes dont vous autorisez l'exécution et appartenant au fichier .pdb de l'application en les répertoriant dans un fichier srcsrv.ini qui doit se trouver dans le même répertoire que srcsrv.dll et devenv.exe.You can limit what commands are allowed to be executed from the application's .pdb file by listing the allowed commands inside a file named srcsrv.ini, which must be placed in the same directory as srcsrv.dll and devenv.exe.

Important

Les commandes arbitraires peuvent être incorporées dans le fichier .pdb de l'application, veillez à ne mettre que celles que vous voulez exécuter dans le fichier srcsrv.ini.Arbitrary commands can be embedded in the application's .pdb file, so make sure you put only the ones you want to execute in the srcsrv.ini file. Toute tentative d'exécution d'une commande ne se trouvant pas dans le fichier srcsvr.ini provoque l'apparition d'une boîte de dialogue de confirmation.Any attempt to execute a command not in the srcsvr.ini file will cause a confirmation dialog box to appear. Pour plus d'informations, consultez Security Warning: Debugger Must Execute Untrusted Command.For more information, see Security Warning: Debugger Must Execute Untrusted Command. Aucune validation n’est effectuée sur les paramètres de commande, soyez donc prudent avec les commandes de confiance.No validation is done on command parameters, so be careful with trusted commands. Par exemple, vous avez confiance en cmd.exe, mais un utilisateur malveillant a pu spécifier des paramètres qui rendent la commande dangereuse.For example, if you trusted cmd.exe, a malicious user might specify parameters that would make the command dangerous.

Pour activer l'utilisation d'un serveur sourceTo enable the use of a Source Server

  1. Vérifiez que vous respectez les mesures de sécurité décrites dans la section précédente.Ensure that you have complied with the security measures described in the previous section.

  2. Dans le menu Outils , choisissez Options.On the Tools menu, choose Options.

    La boîte de dialogue Options s'affiche.The Options dialog box appears.

  3. Dans le nœud Débogage , choisissez la page Général.In the Debugging node, choose General.

  4. Activez la case à cocher Activer le support du serveur source .Select the Enable source server support check box.

    Activer les options du serveur sourceEnable source server options

  5. (Facultatif) Sélectionnez les options enfants que vous souhaitez.(Optional) Choose the child options that you want.

    Notez que les deux options Autoriser le serveur source pour les assemblys de confiance partielle (managé uniquement) et Toujours exécuter les commandes de serveur source non fiables sans demander de confirmation peuvent augmenter les risques de sécurité décrits ci-dessus.Note that both Allow source server for partial trust assemblies (Managed only) and Always run untrusted source server commands without prompting can increase the security risks discussed above.

Voir aussiSee Also

Présentation des fichiers de symboles et des paramètres de symbole de Visual StudioUnderstanding Symbol Files and Visual Studio Symbol Settings

Modifications du chargement des symboles distants .NET dans Visual Studio 2012 et 2013.NET Remote Symbol Loading Changes in Visual Studio 2012 and 2013