DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 121366 - Dernière mise à jour: vendredi 5 août 2005 - Version: 3.1

 

Sommaire

Résumé

L'extension .PDB est l'acronyme de «base de données programme». Elle contient le nouveau format de stockage des informations de débogage a été introduites dans Visual C++ version 1.0. À l'avenir, le fichier .pdb contiendra également des autres informations d'état de projet. Parmi les motivations plus importantes du changement de format était de permettre la liaison incrémentielle des versions de débogage de programmes, une modification introduite dans Visual C++ version 2.0.

L'extension .dbg est l'acronyme de «debug». Les fichiers .dbg créés avec l'ensemble d'outils de NT 32 bits se trouvent dans le format de fichier exécutable portable (PE, Portable Executable). Ils contiennent des sections avec COFF, ordre planifié ferme et certaines informations CodeView de cas. Le débogueur Visual C++ intégré peut lire les fichiers .dbg dans ce format, mais il ignore les sections de symboles COFF et recherche les informations CodeView.

Si vous avez besoin de déterminer quelles informations de symbole sont contenues dans un fichier .dbg, vous pouvez taper ce qui suit à l'invite de commande :
Dumpbin sample.dbg/symbol.
				
note le chemin d'accès pouvez être amené à inclure des répertoires pour DUMPBIN.exe et MSdis100.dll :
Path=%Path%;C:\Program Files\DevStudio\VC\bin;C:\Msssdk\bin
				
Pour plus d'informations à propos de DUMPBIN, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
177429  (http://support.microsoft.com/kb/177429/ ) Exemples de sortie DUMPBIN

Plus d'informations

Les fichiers .pdb

Tandis que les versions antérieures, 16 bits de Visual C++ utilisaient fichiers .pdb, les informations de débogage stockées dans leur a été ajoutées à la fin du fichier .exe ou .dll par l'éditeur de liens. Dans les versions de Visual C++ mentionnées ci-dessus, l'éditeur de liens et le débogueur intégré ont été modifiées pour permettre les fichiers .pdb être utilisé directement pendant le processus de débogage, éliminant ainsi importantes quantités de travail pour l'éditeur de liens et également contourner la limite de programme CVPACK lourde des types de 64 Ko.

Pour plus d'informations sur les limitations de programme CVPACK, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
112335  (http://support.microsoft.com/kb/112335/ ) N° de bogue : CK1020 ou CK4009 rencontrée lorsque les informations de type dépasse 64 Ko
<project>Par défaut, lorsque vous générez des projets générés par Visual Workbench, le /FD de commutateur de compilateur est utilisé pour renommer le fichier .PDB pour <projet>.pdb. Vous devez par conséquent, seul un fichier .PDB pour l'ensemble du projet.

Lorsque vous exécutez des makefiles qui n'a pas été généré à l'aide de Visual Workbench, et le /FD n'est pas utilisé avec /Zi, vous finirez avec deux fichiers .pdb :
  • VCx0.PDB (où «x» fait référence à la version principale de correspondante Visual C++ soit "2"ou "4"), qui stocke toutes les informations de débogage pour les fichiers .obj individuels. Il réside dans le répertoire où réside le makefile du projet.
  • <project><projet>.Pdb, qui stocke toutes les informations de débogage pour le fichier .exe résultant. Il réside dans le sous-répertoire \WINDEBUG.
Pourquoi deux fichiers ? <project>Lorsque le compilateur est exécuté, il ne sait pas le nom du fichier .exe dans lequel les fichiers .obj doit être liés, de sorte que le compilateur ne peut pas placer les informations dans <projet>.pdb. Les deux fichiers stockent des informations différentes. Chaque fois que vous compilez un fichier .obj, le compilateur fusionne les informations de débogage dans VCX0.PDB. Il ne placez pas dans les informations sur les symboles, tels que des définitions de fonction. Il place uniquement dans les informations relatives aux types. Un des avantages de ce est que lorsque chaque fichier source inclut des fichiers d'en-tête courants tels que <windows.h>, tous les typedefs de ces en-têtes sont stockés uniquement une seule fois, plutôt que dans chaque fichier .obj.

<project>Lorsque vous exécutez l'éditeur de liens, il crée <projet>.pdb, qui contient les informations de débogage pour le fichier du projet .exe. <project>Toutes les informations de débogage, y compris les prototypes de fonction et tout le reste, sont placées dans <projet>.pdb, pas seulement les informations de type trouvées dans VCX0.PDB. Les deux types de fichiers .pdb partagent la même extension parce qu'elles sont un point de vue architectural similaires ; ils sont tous deux autorisent les mises à jour incrémentielles. Néanmoins, ils stockent réellement des informations différentes.

<project>Le nouveau débogueur de Visual C++ utilise le fichier .pdb <projet>créé directement par l'éditeur de liens et incorpore le chemin d'accès absolu pour le .PDB dans le fichier .exe ou .dll. Si le débogueur ne peut pas trouver le fichier .pdb à cet emplacement ou si le chemin d'accès n'est pas valide (Si, par exemple, le projet a été déplacé vers un autre ordinateur), le débogueur recherche il dans le répertoire en cours.

Les fichiers .dbg

Le débogueur Visual C++ intégré permet également de fichiers .dbg tant qu'elles sont effectuées à partir d'un format CodeView contenant binaire sortie de débogage. Ils sont utiles pour le débogage lorsque le code source n'est pas disponible. Même sans la source, fichiers .DBG permettent de définir des points d'arrêt sur les fonctions, regarder des variables et consultez les fonctions dans la pile des appels. Ils sont également requis pour le débogage OLE RPC.

Un inconvénient a besoin d'être dit : lorsque vous travaillez avec des symboles à partir d'un fichier .dbg, vous devez utiliser les noms décorés complets. Par exemple, pour définir un point d'arrêt sur un appel à la fonction sndPlaySound, spécifiez _sndPlaySoundA@8 comme l'emplacement.

Il existe en fait des formats de fichier .dbg deux. L'ancien format a existé dans le monde de 16 bits pour beaucoup de temps. Par exemple, car le format des fichiers .com est une image binaire simple chargée en mémoire, l'informations de débogage de CodeView ne pourrait pas être ajouté à la fin du fichier car la taille du fichier peut dépasser la limite de 64 Ko pour un fichier .com. Par conséquent, les informations symboliques a été placées à la place dans un fichier .DBG distinct qui possédait uniquement les informations CodeView dans il. Les fichiers .dbg a également pu être générées en exécutant le programme CVPACK sur un fichier .exe à l'aide de l'option /strip.

Pour les extensions .exe 32 bits, la version de Visual C++ 2.x et 4.x Gestionnaire du symbole du débogueur ne lit pas l'ancien format. Au lieu de cela, il lit le format utilisé dans les fichiers .dbg de Windows NT, fourni pour une utilisation avec ses fichiers .DLL système. Ces fichiers .dbg sont dans le format de fichier exécutable portable (PE, Portable Executable) et contiennent des sections avec COFF, ordre planifié ferme et dans certains cas CodeView des informations symboliques. Le nouveau débogueur de Visual C++ lit les fichiers .dbg dans ce format uniquement. En outre, il n'utilise que les informations CodeView, en ignorant les autres sections de symbole.

Il est possible de supprimer les informations de débogage à partir d'un fichier PE et stockez-le dans un fichier .dbg pour une utilisation par les débogueurs. Pour que cela fonctionne, le débogueur a besoin de savoir s'il faut rechercher les informations de débogage dans un fichier distinct ou non et si les informations a été retirées du fichier ou non. Une méthode serait pour le débogueur effectuer une recherche dans le fichier exécutable, recherchez des informations de débogage. Toutefois, pour enregistrer le débogueur d'avoir à rechercher le fichier, un champ de caractéristique de fichier (IMAGE_FILE_DEBUG_STRIPPED) a été inventé qui indique que le fichier a été supprimé. Débogueurs peuvent consulter pour ce champ dans l'en-tête du fichier PE pour déterminer rapidement si les informations de débogage sont présentes dans le fichier ou non.

Pour générer un fichier .dbg dans ce format, vous pouvez utiliser REBASE.EXE, qui est fourni avec le Kit de développement logiciel (SDK) Win32. Veuillez consulter la documentation du Kit de développement Win32 SDK pour plus d'informations.

Pendant les versions commerciales de Windows NT, les symboles de débogage sont supprimés les fichiers binaires du système et les pilotes et stockés dans des fichiers .dbg distincts. Cette opération est effectuée car le débogueur de noyau de Windows NT peut utiliser ces fichiers .dbg et fournir des symboles de débogage même pour les pilotes optimisés. Toutefois, n'oubliez pas que le débogueur Visual C++ intégré n'est pas conçu pour déboguer le code noyau en mode protégé.

Vous pouvez trouver les fichiers de symboles Windows NT dans un sous-répertoire de débogage du répertoire \Support sur le CD-ROM de Commerce de Windows NT. Ces fichiers doivent être copiés à partir du CD-ROM sur votre disque dur. Pour l'utilisateur en mode débogage sur l'ordinateur de débogueur cible, symboles .dbg doivent être présents dans le répertoire de \<winnt>\SYMBOLS de Windows NT du système cible (<winnt>est le répertoire où Windows NT est installé). Le programme d'installation de Visual C++ nouvel installe une icône «Installation des symboles du système NT» dans votre groupe de programmes. Vous pouvez l'utiliser pour copier automatiquement les fichiers .dbg à partir de votre disque CD-ROM de Windows NT Workstation à la structure de répertoire correct sur votre disque dur. Cette méthode ne fonctionne pas pour le CD-ROM Windows NT Server 4.0, car les fichiers .dbg sont stockés dans un format compressé.

Pour le débogage de noyau, placez les fichiers .dbg dans une arborescence de symboles sous le répertoire spécifié par la variable d'environnement _NT_SYMBOL_PATH (par exemple, C:\DEBUG\SYMBOLS). Débogage du noyau est possible avec un ensemble minimal de symboles qui se compose de symboles pour tous les pilotes (*.SYS) dans le répertoire SYMBOLS\SYS et de symboles pour Ntoskrnl.exe et HAL.dll dans les répertoires SYMBOLS\EXE et SYMBOLS\DLL, respectivement. Pour plus d'informations sur le débogage du noyau, reportez-vous à la discussion concernant le débogage du noyau dans Guide du programmeur DDK Windows NT.

Bien qu'il soit théoriquement possible de convertir à partir d'un fichier .pdb à un fichier .dbg, il n'est pas une tâche insignifiante. À ce stade, nous savons d'aucun outil ne. Si nous demandent d'un tel outil, nous mettrons à jour cet article dans la base de connaissances Microsoft.

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual C++ 2.0 Édition Professionnelle
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Édition Standard
  • Microsoft Visual C++ 6.0 Service Pack 5
  • Microsoft Visual C++ 5.0 Édition Standard
  • Microsoft Visual C++ 6.1
Mots-clés : 
kbmt kbbug kbdebug kbide kbinfo KB121366 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 121366  (http://support.microsoft.com/kb/121366/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Article KB retiré.Exclusion de responsabilité concernant les contenus obsolètes dans la Base de connaissances
Cet article concerne des produits pour lesquels Microsoft n'offre plus de support. Il est par conséquent fourni « en l'état » et ne sera plus mis à jour.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store