Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 36247|Antwoord: 2

[Bron] versus Wat en waarom .pdb-bestanden worden gegenereerd

[Link kopiëren]
Geplaatst op 16-01-2018 15:43:04 | | |
Waar is een PDB-bestand voor?

PDB-bestanden: Wat elke ontwikkelaar moet weten

Voorbeeld van een PDB-scenario:

.net/c# log4net-fout registreert niet de oorzaak van het regelnummer
http://www.itsvse.com/thread-3928-1-1.html
(Bron: Architect)


Wat is een PDB-bestand?

De meeste ontwikkelaars weten dat PDB-bestanden worden gebruikt om te helpen bij softwaredebugging. Maar hoe hij precies werkt, kennen we misschien niet goed. Dit artikel beschrijft de opslag en inhoud van PDB-bestanden. Het beschrijft ook hoe de debugger het PDB-bestand vindt dat overeenkomt met binay en hoe de debugger het broncodebestand vindt dat overeenkomt met binay. Dit artikel is bedoeld voor alle Native en Managed ontwikkelaars.

Voordat we beginnen, laten we twee termen definiëren: private build, wat wordt gebruikt om een build aan te duiden die op de eigen machine van de ontwikkelaar is gegenereerd; publieke build, wat betekent dat er een build wordt gegenereerd op een publieke buildmachine. Particuliere bouw is relatief eenvoudig, omdat PDB en Binay op dezelfde plek zitten, en meestal hebben we problemen met publieke bouw.  

Het belangrijkste wat alle ontwikkelaars moeten weten is dat "PDB-bestanden net zo belangrijk zijn als broncode", zonder welke je niet eens kunt debuggen. Voor een publieke build moet de symbolserver alle PDB's opslaan, en wanneer de gebruiker een foutmelding meldt, kan de debugger automatisch het bijbehorende PDB-bestand in binay vinden, en weten zowel Visual Studio als Windbg hoe ze toegang moeten krijgen tot de symbolserver. Voordat je PDB en binay opslaat op de symboolserver, moet je ook de PDB-run source-indexeren, wat betekent dat je PDB en source koppelt.  

Het volgende deel gaat ervan uit dat de Symbol Server en Source Server Indexing al zijn ingesteld. TFS2010 kan zo eenvoudig worden gedaan als bronindexering en het kopiëren van symbolservers voor een nieuwe build.

2. De inhoud van het PDB-bestand

Officieel startte de inhoud van PDB, PDB is geen openbaar beschikbaar bestandsformaat, maar Microsoft biedt een API om data van PDB te verkrijgen.

De native C++ PDB bevat de volgende informatie:
* publieke, private en statische functieadressen;
* De naam en het adres van de globale variabele;
* Parameter- en lokale variabelenamen en offsets op de stack;
* typedefinities van klasse, structuur en data;
* Frame Pointer weglatingsgegevens voor het doorlopen van de native stack op x86;
* De naam en het aantal regels in het broncodebestand;

De .NET PDB bevat slechts 2 delen informatie:
* Bestandsnaam van de broncode en aantal regels;
* en de naam van de lokale variabele;
* Alle andere gegevens zijn al opgenomen in de . NET Metadata;  





Vorig:Visual Studio voegt de krachtige bewerkingsmogelijkheden van Vim toe om het moeilijk te voorkomen te maken!
Volgend:SQL Server Mail verzenden via databases (sp_send_dbmail)
Geplaatst op 16-01-2018 15:44:18 |
 Huisbaas| Geplaatst op 08-12-2022 21:44:33 |
VS 2022 zet het project zo in dat het een .pdb-bestand genereert
https://www.itsvse.com/thread-10397-1-1.html
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com