DetailPage-MSS-KB

Knowledge Base

Artikel ID: 121366 - Laatste beoordeling: dinsdag 10 juli 2012 - Wijziging: 4.0

 

Op deze pagina

Samenvatting

De.PDB extensie staat voor 'programmadatabase '. De nieuwe opmaak bevat voor 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 wijziging indeling koppelen van incrementele versies van programma's, Foutopsporing toestaan is een Wijzig eerst geïntroduceerd in Visual C++ versie 2.0.

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

Als u bepalen welk symbool is opgenomen wilt in een.DBG bestand, typ het volgende achter de opdrachtprompt:
Dumpbin sample.dbg/symbol.
				
Opmerking Het pad mogelijk mappen bevatten voor Dumpbin.exe en MSdis100.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:
177429  (http://support.microsoft.com/kb/177429/ ) Voorbeelden van uitvoer DUMPBIN

Meer informatie

De.PDB-bestanden

Tijdens eerdere, 16-bits versies van Visual C++ gebruikt.PDB-bestanden, de Foutopsporingsgegevens opgeslagen in deze is toegevoegd aan het einde van het.EXE of .DLL-bestand door het koppelingsprogramma. In de versies van Visual C++ bovengenoemde de linker- en de geïntegreerde debugger zijn toestaan gewijzigd.PDB bestanden rechtstreeks tijdens de foutopsporing, waardoor worden gebruikt aanzienlijke hoeveelheden werk voor de linker en ook het overslaan van de CVPACK-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:
112335  (http://support.microsoft.com/kb/112335/ ) BUG: 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 de compiler-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 en de /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 mogelijk de informatie in de <project>plaatsen.PDB. De twee bestanden opslaan anders informatie. Elke keer dat u een.OBJ-bestand samengevoegd van de compiler de foutopsporingsgegevens naar VCX0.PDB. Plaats en niet in de gegevens zoals de functiedefinities van de. Het wordt alleen informatie betreffende de soorten. Een voordeel is dat de elk bronbestand bevat algemene koptekst bestanden zoals <windows.h>, de typedefs van deze headers zijn alleen eenmaal opgeslagen dan in elke.OBJ-bestand. </windows.h></project>

Wanneer u de linker uitvoert, maakt het <project>.PDB waarin de Foutopsporingsgegevens voor het project.EXE-bestand. Alle foutopsporing informatie, inclusief functie prototypes en alles anders wordt geplaatst. in <project>.PDB, niet alleen het type informatie gevonden in VCX0.PDB. De twee soorten van.PDB bestanden delen dezelfde extensie omdat ze conceptueel vergelijkbaar; beide toestaan incrementele updates. Niettemin zij daadwerkelijk opslaan informatie. </project></project>

De nieuwe foutopsporing Visual C++ gebruikt de <project>.PDB-bestand gemaakt door de linker 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 of het pad is ongeldig (Als bijvoorbeeld het project is verplaatst naar een andere computer), 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-bestanden zij bestaan uit een met Codeview binair debugging output. Deze zijn handig voor foutopsporing wanneer de broncode niet beschikbaar is. Zelfs zonder de bron.DBG-bestanden kunt u onderbrekingspunten instelt op functies, Bekijk variabelen en functies in de aanroepstack Zie. Ze zijn ook vereist voor foutopsporing OLE RPC.

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

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

Voor 32-bits.Exe's, de Visual C++ versie 2.x en 4.x-debugger symbool handler de oude indeling niet kan lezen. In plaats daarvan wordt de indeling gebruikt de Windows NT.DBG-bestanden geleverd voor gebruik met het systeem.DLL-bestanden. Deze.DBG-bestanden worden in de bestandsindeling Portable Executable (PE) en secties met COFF, FPO, en in sommige gevallen Codeview symbolische bevatten informatie. De nieuwe Visual C++-debugger leest.DBG-bestanden in deze indeling alleen. Voorts wordt alleen gebruikt Codeview, negeert de andere 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 debugger weet of u de foutopsporingsinformatie of niet in een apart bestand te zoeken en of de informatie is verwijderd uit het bestand of niet. Een methode zou zijn voor de debugger te doorzoeken op het uitvoerbare bestand zoekt informatie over foutopsporing. Echter, de debugger te zoeken opslaan de bestand, een bestand karakteristieke veld (IMAGE_FILE_DEBUG_STRIPPED) werd invented die aangeeft dat het bestand is verwijderd. Debuggers kunnen zoeken naar deze veld in de header van het bestand PE snel vaststellen of de foutopsporing informatie is aanwezig in het bestand of niet.

Voor het genereren van een.DBG-bestand in deze indeling kunt u REBASE.EXE is voorzien zijn van de Win32 SDK. Zie de Win32 SDK-documentatie voor meer details.

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

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

Plaats voor het debuggen van de kernel.DBG-bestanden in een symbolen de structuur onder de opgegeven door de variabele _NT_SYMBOL_PATH (voor map bijvoorbeeld C:\DEBUG\SYMBOLS). Kernel-foutopsporing is mogelijk met een minimale symbolen die bestaan uit symbolen voor de stuurprogramma's (*.SYS) in de De map SYMBOLS\SYS en symbolen voor NTOSKRNL.EXE en HAL.DLL in de De 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 bijwerken Knowledge Base.

De informatie in dit artikel is van toepassing op:
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Standard Edition
Trefwoorden: 
kbbug kbdebug kbide kbinfo kbmt KB121366 KbMtnl
Machine-translated ArticleMachine-translated Article
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  (http://support.microsoft.com/kb/121366/en-us/ )
Ingetrokken KB-artikelVrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.
Delen
Extra ondersteuningsopties
Microsoft Community Support-forums
Neem rechtstreeks contact met ons op
Een door Microsoft gecertificeerde partner zoeken
Microsoft Store