Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Les symboles sont utiles pour le débogage et d’autres outils de diagnostic. Le contenu des fichiers de symboles varie entre les langages, les compilateurs et les plateformes. À un niveau élevé, les symboles sont un mappage entre le code source et le binaire produit par le compilateur. Ces mappages sont utilisés par des outils tels que Visual Studio et Visual Studio Code pour résoudre les informations de numéro de ligne source ou les noms de variables locales.
La documentation Windows sur les symboles contient des informations plus détaillées sur les symboles pour Windows, bien que de nombreux concepts s’appliquent également à d’autres plateformes.
En savoir plus sur le format PDB portable de .NET
.NET Core a introduit un nouveau format de fichier de symboles (PDB) : la base de données PDB portable. Contrairement aux PDB classiques, qui ne fonctionnent que sous Windows, les PDB portables peuvent être créées et lues sur toutes les plateformes.
Qu’est-ce qu’une base de données PDB ?
Un fichier PDB est un fichier auxiliaire produit par un compilateur pour fournir d’autres outils, en particulier des débogueurs, des informations sur ce qui se trouve dans le fichier exécutable principal et la façon dont il a été produit. Par exemple, un débogueur lit un fichier PDB pour associer la ligne 12 de foo.cs à l'emplacement exécutable adéquat afin de pouvoir définir un point d’arrêt. Le format PDB de Windows existe depuis longtemps et a évolué à partir d'autres formats de symboles de débogage natifs, plus anciens encore. Il a commencé sa vie en tant que format pour les programmes natifs (C/C++). Pour la première version du .NET Framework, le format PDB Windows a été étendu pour prendre en charge .NET.
Le format PDB portable a été introduit dans .NET Core et il est utilisé par défaut lors du ciblage de .NET. Lorsque vous ciblez .NET Framework, vous pouvez activer les symboles PDB portables en spécifiant <DebugType>portable</DebugType> dans votre fichier projet. Le format PDB portable est basé sur le format de métadonnées ECMA-335. Pour plus d’informations, consultez Portable PDB v1.0 : Spécification de format. Les outils de diagnostic peuvent utiliser la System.Reflection.Metadata bibliothèque pour lire les fichiers PDB portables (par exemple, voir System.Reflection.Metadata.Document).
Utiliser le format PDB approprié pour votre scénario
Ni les PDB portables ni les PDB Windows ne sont pris en charge partout. Pour déterminer le format à utiliser, envisagez l’endroit où votre projet sera utilisé et débogué. Si vous avez un projet que vous souhaitez utiliser et déboguer dans les deux formats, vous pouvez utiliser différentes configurations de build et générer le projet deux fois pour prendre en charge les deux types de consommateurs.
Prise en charge des fichiers PDB portables
Une base de données PDB portable peut être lue sur n’importe quel système d’exploitation et est le format de symbole recommandé pour le code managé. Toutefois, il existe un certain nombre d’outils et d’applications hérités où ils ne sont pas pris en charge :
Applications ciblant .NET Framework 4.7.1 ou version antérieure : impression de traces avec des mappages vers des numéros de ligne (par exemple, dans une page d’erreur ASP.NET). Le nom des méthodes n’est pas affecté, seuls les noms de fichiers sources et les numéros de ligne ne sont pas pris en charge.
Lorsque vous utilisez des décompilateurs .NET tels que l’ildasm ou le réflecteur .NET, vous ne verrez pas les mappages de lignes sources ou les noms de paramètres locaux.
Les dernières versions de DIA et d’outils qui utilisent DIA pour lire des symboles, tels que WinDBG, prennent en charge les PDB portables, mais les versions antérieures ne le font pas.
Il peut y avoir des versions antérieures des profileurs qui ne prennent pas en charge les PDB portables.
Pour utiliser des fichiers PDF portables sur des outils qui ne les prennent pas en charge, vous pouvez utiliser Pdb2Pdb, qui se convertit entre les PDB portables et les PDB Windows.
Prise en charge des PDB Windows
Les bases de données Windows peuvent uniquement être écrites ou lues sur Windows. L’utilisation de PDB Windows pour le code managé est obsolète et est uniquement nécessaire pour les outils hérités. Il est recommandé d’utiliser des fichiers PDF portables plutôt que des PDB Windows, car certaines fonctionnalités de compilateur plus récentes sont implémentées uniquement pour les fichiers PDF portables.
Voir aussi
- dotnet-symbol peut être utilisé pour télécharger des fichiers de symboles pour les fichiers binaires de framework
- Documentation Windows sur les symboles