Partager via


Autres DLL du serveur de symboles

Si vous souhaitez utiliser une autre méthode pour votre recherche de symboles, vous pouvez fournir votre propre DLL de serveur de symboles au lieu d’utiliser SymSrv.

Définition du chemin du symbole

Lors de l’implémentation d’un serveur de symboles autre que SymSrv, le chemin des symboles du débogueur est défini de la même façon qu’avec SymSrv. Pour obtenir une explication de la syntaxe du chemin d’accès aux symboles, consultez Symboles publics Microsoft et Advanced SymSrv Use . La seule modification que vous devez apporter consiste à remplacer la chaîne symsrv.dll par le nom de votre propre DLL de serveur de symboles.

Si vous le souhaitez, vous êtes libre d’utiliser une syntaxe différente dans les paramètres pour indiquer l’utilisation de différentes technologies telles que les chemins UNC, les identificateurs de base de données SQL ou les spécifications Internet.

Implémentation de votre propre serveur de symboles

Une approche consiste à utiliser du code qui communique avec DbgHelp pour rechercher les symboles. Chaque fois que DbgHelp nécessite des symboles pour un module nouvellement chargé, il appelle le serveur de symboles pour localiser les fichiers de symboles appropriés. Le serveur de symboles localise chaque fichier en fonction de paramètres uniques tels que l’horodatage ou la taille de l’image. Le serveur retourne un chemin d’accès validé au fichier demandé.

Vous ne devez pas modifier le nom de fichier de symboles réel retourné par votre serveur de symboles. DbgHelp stocke le nom d’un fichier de symboles à plusieurs emplacements. Par conséquent, le serveur doit retourner un fichier du même nom que celui spécifié lorsque le symbole a été demandé. Cette restriction est nécessaire pour garantir que les noms de symboles affichés pendant le chargement des symboles sont ceux que le programmeur reconnaîtra.

Restrictions sur plusieurs serveurs de symboles

DbgHelp prend en charge l’utilisation d’un seul serveur de symboles à la fois. Votre chemin de symbole peut contenir plusieurs instances de la même DLL de serveur de symboles, mais pas deux DLL de serveur de symboles différentes. Il ne s’agit pas d’une restriction importante, car vous êtes toujours libre d’inclure plusieurs instances d’un serveur de symboles dans votre chemin de symboles, chacune pointant vers un magasin de symboles différent. Toutefois, si vous souhaitez basculer entre deux DLL de serveur de symboles différentes, vous devez modifier le chemin du symbole à chaque fois.

Installation de votre DLL de serveur de symboles personnalisés

Les détails de l’installation de votre serveur de symboles dépendent de votre situation. Vous pouvez configurer un processus d’installation qui copie la DLL de votre serveur de symboles et définit automatiquement la variable d’environnement _NT_SYMBOL_PATH.

Selon la technologie utilisée sur votre serveur, vous devrez peut-être installer les données de symboles ou y accéder.

PDB portable (base de données de programme)

Le format PDB portable (program database) décrit un encodage des informations de débogage produites par les compilateurs des langages CLI (Common Language Infrastructure) et consommées par les débogueurs et d’autres outils. Le format est basé sur la norme de métadonnées ECMA-335 Partition II. Il prend en charge le fonctionnement sur différents systèmes d’exploitation et plateformes. Pour plus d’informations, consultez Symboles PDB portables.

Magasins de symboles personnalisés et serveurs de symboles

Pour plus d’informations sur la création de serveurs de symboles personnalisés, consultez Magasins de symboles personnalisés et Serveurs de symboles.