Beschrijving van het.PDB-bestanden en de.DBG-bestanden

BELANGRIJK: Dit artikel is vertaald door de vertaalmachine software van Microsoft in plaats van door een professionele vertaler. Microsoft biedt u professioneel vertaalde artikelen en artikelen vertaald door de vertaalmachine, zodat u toegang heeft tot al onze knowledge base artikelen in uw eigen taal. Artikelen vertaald door de vertaalmachine zijn niet altijd perfect vertaald. Deze artikelen kunnen fouten bevatten in de vocabulaire, zinsopbouw en grammatica en kunnen lijken op hoe een anderstalige de taal spreekt en schrijft. Microsoft is niet verantwoordelijk voor onnauwkeurigheden, fouten en schade ontstaan door een incorrecte vertaling van de content of het gebruik ervan door onze klanten. Microsoft past continue de kwaliteit van de vertaalmachine software aan door deze te updaten.

De Engelstalige versie van dit artikel is de volgende: 121366
Dit artikel is gearchiveerd. Het wordt aangeboden in de huidige vorm en wordt niet meer bijgewerkt.
Samenvatting
De.PDB extensie staat voor 'programmadatabase '. De nieuwe opmaak bevatvoor het opslaan van foutopsporingsgegevens die is geïntroduceerd in Visual C++versie 1.0. In de toekomst de.PDB-bestand wordt ook andere projecten bevatten.informatie over de status. Een van de belangrijkste motiveringen voor de wijzigingindeling koppelen van incrementele versies van programma's, Foutopsporing toestaan is eenWijzig eerst geïntroduceerd in Visual C++ versie 2.0.

De.DBG-extensie staat voor "debug". De.DBG-bestanden die zijn gemaakt met de32-bits NT toolset zijn in de bestandsindeling Portable Executable (PE).Secties met COFF, FPO, en in sommige gevallen Codeview bevatteninformatie. Het foutopsporingsprogramma van Visual C++ geïntegreerd kan lezen.DBG-bestanden inDeze opmaak echter deze secties symbool COFF genegeerd en zoektCodeView informatie.

Als u bepalen welk symbool is opgenomen wilt in een.DBGbestand, typ het volgende achter de opdrachtprompt:
Dumpbin sample.dbg/symbol.				
Opmerking Het pad mogelijk mappen bevatten voor Dumpbin.exe enMSdis100.dll:
Path=%Path%;C:\Program Files\DevStudio\VC\bin;C:\Msssdk\bin				
Klik op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base voor meer informatie over DUMPBIN:
177429Voorbeelden van uitvoer DUMPBIN
Meer informatie

De.PDB-bestanden

Tijdens eerdere, 16-bits versies van Visual C++ gebruikt.PDB-bestanden, deFoutopsporingsgegevens opgeslagen in deze is toegevoegd aan het einde van het.EXE of.DLL-bestand door het koppelingsprogramma. In de versies van Visual C++ bovengenoemdede linker- en de geïntegreerde debugger zijn toestaan gewijzigd.PDBbestanden rechtstreeks tijdens de foutopsporing, waardoor worden gebruiktaanzienlijke hoeveelheden werk voor de linker en ook het overslaan van deCVPACK-limiet van 64 K omslachtig.

Klik op het volgende artikelnummer om het artikel in de Microsoft Knowledge Base voor meer informatie over de beperkingen van de CVPACK:
112335BUG: CK1020 of CK4009 opgetreden bij het type info groter is dan 64 kB
Bij het samenstellen van projecten die zijn gegenereerd door de visuele Workbench decompiler-schakeloptie /Fd wordt gebruikt om de naam de.PDB-bestand <project>.PDB.Daarom hebt u slechts één.PDB-bestand voor het hele project.</project>

Bij het uitvoeren van makefiles die niet zijn gegenereerd door de visuele Workbench ende /Fd wordt niet gebruikt met /Zi, worden er twee.PDB-bestanden:
  • VCx0.PDB (waarbij 'x' verwijst naar de hoofdversie van de bijbehorende Visual C++, "2" of "4"), die alle foutopsporingsgegevens worden opgeslagen voor de afzonderlijke.OBJ bestanden. Het bevindt zich in de map waar de Make project zich bevindt.
  • <project>.PDB waarin alle informatie voor foutopsporing voor de resulterende opgeslagen .EXE-bestand. Het bevindt zich in de submap \WINDEBUG.</project>
Waarom twee bestanden? Wanneer de compiler wordt uitgevoerd, weet niet de naam van de.EXE-bestand waarin de.OBJ bestanden gekoppeld, zodat de compiler niet mogelijkde informatie in de <project>plaatsen.PDB. De twee bestanden opslaan andersinformatie. Elke keer dat u een.OBJ-bestand samengevoegd van de compiler defoutopsporingsgegevens naar VCX0.PDB. Plaats en niet in de gegevenszoals de functiedefinities van de. Het wordt alleen informatie betreffende de soorten.Een voordeel is dat de elk bronbestand bevat algemene koptekstbestanden zoals <windows.h>, de typedefs van deze headers zijn alleeneenmaal opgeslagen dan in elke.OBJ-bestand.</windows.h></project>

Wanneer u de linker uitvoert, maakt het <project>.PDB waarin deFoutopsporingsgegevens voor het project.EXE-bestand. Alle foutopsporinginformatie, inclusief functie prototypes en alles anders wordt geplaatst.in <project>.PDB, niet alleen het type informatie gevonden in VCX0.PDB. Detwee soorten van.PDB bestanden delen dezelfde extensie omdat zeconceptueel vergelijkbaar; beide toestaan incrementele updates. Nietteminzij daadwerkelijk opslaan informatie.</project></project>

De nieuwe foutopsporing Visual C++ gebruikt de <project>.PDB-bestand gemaakt door delinker rechtstreeks en sluit u het absolute pad naar de.PDB in de.EXE of.DLL-bestand. Als de debugger kan vinden het.PDB-bestand op die locatie ofhet pad is ongeldig (Als bijvoorbeeld het project is verplaatst naar een anderecomputer), de debugger ziet er voor het in de huidige map.</project>

De.DBG-bestanden

Het foutopsporingsprogramma van Visual C++ geïntegreerd kunt ook gebruiken.Zolang DBG-bestandenzij bestaan uit een met Codeview binair debugging output.Deze zijn handig voor foutopsporing wanneer de broncode niet beschikbaar is. Zelfszonder de bron.DBG-bestanden kunt u onderbrekingspunten instelt op functies,Bekijk variabelen en functies in de aanroepstack Zie. Ze zijn ookvereist voor foutopsporing OLE RPC.

Een voorbehoud dient te worden gewezen: als u werkt met symbolen van een.DBGbestand, moet u de volledige gedecoreerde namen. Bijvoorbeeld het instellen van eenonderbrekingspunt in een aanroep van de functie Windows sndPlaySound zouGeef de locatie _sndPlaySoundA@8.

Er zijn eigenlijk twee.DBG-bestandsindelingen. De oude indeling reedsheel even in de wereld van 16 bits. Bijvoorbeeld omdat de .com-indelingbestanden is een eenvoudige, binaire image in het geheugen geladen Codeview fouten opsporeninformatie kan niet worden toegevoegd aan het einde van het bestand omdat het bestandde limiet van 64 K voor een .com-bestand mogelijk groter. Daarom de symbolischeinformatie in plaats daarvan in een afzonderlijke plaatsenDBG-bestand alleen hadCodeView informatie. De.DBG-bestanden kunnen ook worden gegenereerd doorCVPACK uitgevoerd op een.EXE-bestand met de optie /strip.

Voor 32-bits.Exe's, de Visual C++ versie 2.x en 4.x-debugger symboolhandler de oude indeling niet kan lezen. In plaats daarvan wordt de indeling gebruiktde Windows NT.DBG-bestanden geleverd voor gebruik met het systeem.DLL-bestanden.Deze.DBG-bestanden worden in de bestandsindeling Portable Executable (PE) ensecties met COFF, FPO, en in sommige gevallen Codeview symbolische bevatteninformatie. De nieuwe Visual C++-debugger leest.DBG-bestanden in deze indelingalleen. Voorts wordt alleen gebruikt Codeview, negeert deandere secties symbool.

Is het mogelijk foutopsporingsgegevens van een PE bestand verwijderen en opslaan in een.DBG-bestand voor gebruik door debuggers. Dit werkt moet de debuggerweet of u de foutopsporingsinformatie of niet in een apart bestand te zoeken enof de informatie is verwijderd uit het bestand of niet. Een methodezou zijn voor de debugger te doorzoeken op het uitvoerbare bestand zoektinformatie over foutopsporing. Echter, de debugger te zoeken opslaan debestand, een bestand karakteristieke veld (IMAGE_FILE_DEBUG_STRIPPED) werd inventeddie aangeeft dat het bestand is verwijderd. Debuggers kunnen zoeken naar dezeveld in de header van het bestand PE snel vaststellen of de foutopsporinginformatie is aanwezig in het bestand of niet.

Voor het genereren van een.DBG-bestand in deze indeling kunt u REBASE.EXE isvoorzien zijn van de Win32 SDK. Zie de Win32 SDK-documentatie voormeer details.

Tijdens de Windows NT retail-builds symbolen worden verwijderd uit desysteembestanden en stuurprogramma's en opgeslagen in aparte.DBG-bestanden. Dit is gedaan.omdat Windows NT kernel-foutopsporing deze gebruiken kan.DBG-bestanden en biedensymbolen voor foutopsporing ook voor geoptimaliseerde stuurprogramma's. Bedenk echter dat deVisual C++ geïntegreerde debugger is niet ontworpen voor de beveiligde modus Foutopsporingkernel-code.

De symboolbestanden voor Windows NT kunnen u vinden in een submap voor foutopsporing van deDe \support-map op de CD-ROM van Windows NT retail. Deze bestanden moeten wordenvanaf de CD-ROM naar de vaste schijf gekopieerd. Voor de gebruiker modus Foutopsporing op dedebugger doelcomputer.DBG symbolen moet aanwezig zijn in Windows NT\<winnt>\SYMBOLS directory van het target-systeem (<winnt> is de mapwaarin Windows NT is geïnstalleerd). De nieuwe Visual C++-installatieprogramma installeerteen pictogram 'NT systeem symbolen Setup' in uw groep. U kunt opautomatisch kopiëren de.DBG-bestanden vanaf de CD-ROM van Windows NT Workstationde schijf naar de juiste mapstructuur op de vaste schijf. Deze methodewerkt niet voor de CD-ROM van Windows NT Server 4.0 omdat de.DBG-bestandenworden opgeslagen in een gecomprimeerde indeling.</winnt></winnt>

Plaats voor het debuggen van de kernel.DBG-bestanden in een symbolen de structuur onder deopgegeven door de variabele _NT_SYMBOL_PATH (voor mapbijvoorbeeld C:\DEBUG\SYMBOLS). Kernel-foutopsporing is mogelijk met een minimalesymbolen die bestaan uit symbolen voor de stuurprogramma's (*.SYS) in deDe map SYMBOLS\SYS en symbolen voor NTOSKRNL.EXE en HAL.DLL in deDe mappen SYMBOLS\EXE en SYMBOLS\DLL, respectievelijk. Voor meer informatie.verwijzen naar de discussie over de kernel-foutopsporing in kernel-foutopsporing,de Windows NT DDK Programmer's Guide.

Het is theoretisch mogelijk converteren van een.PDB-bestand naar een.DBG-bestand is niet een trivial taak. Op dit moment weten we van geen dergelijk hulpprogramma.Als we van een dergelijk hulpprogramma hoort, zullen we dit artikel in de Microsoft bijwerkenKnowledge Base.
kbDebug kbTools kbVC200 kbVC210 kbVC400 kbVC500

Waarschuwing: dit artikel is automatisch vertaald

Eigenschappen

Artikel-id: 121366 - Laatst bijgewerkt: 12/04/2015 10:35:05 - Revisie: 4.0

Microsoft Visual C++ 2.1, Microsoft Visual C++ 4.0 Standard Edition

  • kbnosurvey kbarchive kbbug kbdebug kbide kbinfo kbmt KB121366 KbMtnl
Feedback