Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Chaque appel à SymStore est enregistré en tant que transaction. Il existe deux types de transactions : ajouter et supprimer.
Lorsque le magasin de symboles est créé, un répertoire appelé « 000admin » est créé sous la racine du serveur. Le répertoire 000admin contient un fichier pour chaque transaction, ainsi que les fichiers journaux server.txt et history.txt. Le fichier server.txt contient une liste de toutes les transactions actuellement sur le serveur. Le fichier history.txt contient un historique chronologique de toutes les transactions.
Chaque fois que SymStore stocke ou supprime des fichiers de symboles, un nouveau numéro de transaction est créé. Ensuite, un fichier, dont le nom est ce numéro de transaction, est créé dans 000admin. Ce fichier contient une liste de tous les fichiers ou pointeurs qui ont été ajoutés au magasin de symboles pendant cette transaction. Si une transaction est supprimée, SymStore lit son fichier transactionnel pour déterminer les fichiers et pointeurs qu’il doit supprimer.
Les options d’ajout et de del spécifient si une transaction d’ajout ou de suppression doit être effectuée. L’inclusion de l’option /p avec une opération d’ajout spécifie qu’un pointeur doit être ajouté ; Omettre l’option /p spécifie que le fichier de symboles réel doit être ajouté.
Il est également possible de créer le magasin de symboles en deux étapes distinctes. Dans la première étape, vous utilisez SymStore avec l’option /x pour créer un fichier d’index. Dans la deuxième étape, vous utilisez SymStore avec l’option /y pour créer le magasin réel de fichiers ou de pointeurs à partir des informations contenues dans le fichier d’index.
Il peut s’agir d’une technique utile pour diverses raisons. Par exemple, cela permet de recréer facilement le magasin de symboles si celui-ci est perdu d'une manière ou d'une autre, tant que le fichier d'index existe toujours. Ou peut-être que l’ordinateur contenant les fichiers de symboles dispose d’une connexion réseau lente à l’ordinateur sur lequel le magasin de symboles sera créé. Dans ce cas, vous pouvez créer le fichier d’index sur le même ordinateur que les fichiers de symboles, transférer le fichier d’index vers la deuxième machine, puis créer le magasin sur le deuxième ordinateur.
Pour obtenir la liste complète de tous les paramètres SymStore, consultez Les options de symStore Command-Line.
Note SymStore ne prend pas en charge les transactions simultanées de plusieurs utilisateurs. Il est recommandé qu’un utilisateur soit désigné « administrateur » du magasin de symboles et qu’il soit responsable de toutes les transactions d’ajout et de del .
Exemples de transactions
Voici deux exemples de SymStore ajoutant des pointeurs de symboles pour la build 2195 de Windows 2000 à \\MyDir\symsrv :
symstore add /r /p /f \\BuildServer\BuildShare\2195free\symbols\*.* /s \\MyDir\symsrv /t "Windows 2000" /v "Build 2195 x86 free" /c "Sample add"
symstore add /r /p /f \\BuildServer\BuildShare\2195free\symbols\*.* /s \\MyDir\symsrv /t "Windows 2000" /v "Build 2195 x86 checked" /c "Sample add"
Dans l’exemple suivant, SymStore ajoute les fichiers de symboles réels d’un projet d’application dans \\largeapp\appserver\bins à \\MyDir\symsrv :
symstore add /r /f \\largeapp\appserver\bins\*.* /s \\MyDir\symsrv /t "Large Application" /v "Build 432" /c "Sample add"
Voici un exemple de l’utilisation d’un fichier d’index. Tout d’abord, SymStore crée un fichier d’index basé sur la collection de fichiers de symboles dans \\largeapp\appserver\bins\. Dans ce cas, le fichier d’index est placé sur un troisième ordinateur, \\hubserver\hubshare. Vous utilisez l’option /g pour spécifier que le préfixe de fichier « \\largeapp\appserver » peut changer à l’avenir :
symstore add /r /p /g \\largeapp\appserver /f \\largeapp\appserver\bins\*.* /x \\hubserver\hubshare\myindex.txt
Supposons maintenant que vous déplacez tous les fichiers de symboles hors de la machine \\largeapp\appserver et les placez sur \\myarchive\appserver. Vous pouvez ensuite créer le magasin de symboles lui-même à partir du fichier d’index \\hubserver\hubshare\myindex.txt comme suit :
symstore add /y \\hubserver\hubshare\myindex.txt /g \\myarchive\appserver /s \\MyDir\symsrv /p /t "Large Application" /v "Build 432" /c "Sample Add from Index"
Enfin, voici un exemple de SymStore supprimant un fichier ajouté par une transaction précédente. Consultez la section « Fichiers server.txt et history.txt » ci-dessous pour obtenir une explication sur la façon de déterminer l’ID de transaction (dans ce cas, 0000000096).
symstore del /i 0000000096 /s \\MyDir\symsrv
Fichiers server.txt et history.txt
Lorsqu’une transaction est ajoutée, plusieurs éléments d’informations sont ajoutés à server.txt et history.txt pour une fonctionnalité de recherche ultérieure. Voici un exemple de ligne dans server.txt et history.txt pour une transaction d’ajout :
0000000096,add,ptr,10/09/99,00:08:32,Windows Vista SP 1,x86 fre 1.156c-RTM-2,Added from \\mybuilds\symbols,
Il s’agit d’une ligne séparée par des virgules. Les champs sont expliqués comme suit :
| Terrain | Descriptif |
|---|---|
0000000096 |
Numéro d’ID de transaction, tel que créé par SymStore. |
ajouter |
Type de transaction. Ce champ peut être ajouté ou del. |
ptr |
Indique si des fichiers ou des pointeurs ont été ajoutés. Ce champ peut être un fichier ou un ptr. |
10/09/99 |
Date à laquelle la transaction s’est produite. |
00:08:32 |
Heure de démarrage de la transaction. |
Windows Vista SP 1 |
Produit. |
x86 fre |
Version (facultatif). |
Ajouté à partir de |
Commentaire (facultatif) |
Unused |
(Réservé pour une utilisation ultérieure.) |
Voici quelques exemples de lignes du fichier transaction 0000000096. Chaque ligne enregistre le répertoire et l’emplacement du fichier ou du pointeur qui a été ajouté au répertoire.
canon800.dbg\35d9fd51b000,\\mybuilds\symbols\sp4\dll\canon800.dbg
canonlbp.dbg\35d9fd521c000,\\mybuilds\symbols\sp4\dll\canonlbp.dbg
certadm.dbg\352bf2f48000,\\mybuilds\symbols\sp4\dll\certadm.dbg
certcli.dbg\352bf2f1b000,\\mybuilds\symbols\sp4\dll\certcli.dbg
certcrpt.dbg\352bf04911000,\\mybuilds\symbols\sp4\dll\certcrpt.dbg
certenc.dbg\352bf2f7f000,\\mybuilds\symbols\sp4\dll\certenc.dbg
Si vous utilisez une transaction del pour annuler les transactions d’ajout d’origine, ces lignes sont supprimées de server.txtet la ligne suivante est ajoutée à history.txt:
0000000105,del,0000000096
Les champs de la transaction de suppression sont décrits comme suit.
| Terrain | Descriptif |
|---|---|
0000000105 |
Numéro d’ID de transaction, tel que créé par SymStore. |
del |
Type de transaction. Ce champ peut être ajouté ou del. |
0000000096 |
Transaction supprimée. |