Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 36247|Svar: 2

[Källa] vs Vad och varför .pdb-filer genereras

[Kopiera länk]
Publicerad på 2018-01-16 15:43:04 | | |
Vad är en PDB-fil till för?

PDB-filer: Vad varje utvecklare måste veta

Exempel på PDB-scenario:

.net/c# log4net-felundantaget registrerar inte orsaken till radnumret
http://www.itsvse.com/thread-3928-1-1.html
(Källa: Architect)


Vad är en PDB-fil?

De flesta utvecklare bör veta att PDB-filer används för att hjälpa till med felsökning av mjukvara. Men hur han exakt fungerar kanske vi inte är bekanta med. Denna artikel beskriver lagringen och innehållet i PDB-filer. Den beskriver också hur felsökaren hittar PDB-filen som motsvarar binay och hur felsökaren hittar källkodsfilen som motsvarar binay. Den här artikeln är för alla Native- och Managed-utvecklare.

Innan vi börjar, låt oss definiera två termer: privat build, som används för att beteckna en build genererad på utvecklarens egen maskin; offentlig build, vilket betyder en build genererad på en offentlig build-maskin. privat byggnation är relativt enkel, eftersom PDB och Binay är på samma plats, och vanligtvis handlar problemen vi har om offentlig byggnation.  

Det viktigaste som alla utvecklare behöver veta är att "PDB-filer är lika viktiga som källkod", utan vilka du inte ens kan felsöka. För publik build måste symbolservern lagra alla PDB:er, och när användaren rapporterar ett fel kan felsökaren automatiskt hitta motsvarande PDB-fil i binay, och både Visual Studio och Windbg vet hur man får tillgång till symbolservern. Innan du lagrar PDB och binay till symbolservern behöver du också source indexera PDB-körningen, vilket innebär att associera PDB och source.  

Nästa del förutsätter att Symbolserver- och Source Server-indexeringen redan är uppsatta. TFS2010 kan göras lika enkelt som källkodsindexering och symbolserverkopiering för en ny build.

2. Innehållet i PDB-filen

Officiellt startade PDB:s innehåll och PDB är inte ett offentligt tillgängligt filformat, men Microsoft tillhandahåller ett API för att hjälpa till att hämta data från PDB.

Den inbyggda C++ PDB:n innehåller följande information:
* offentliga, privata och statiska funktionsadresser;
* Namnet och adressen till den globala variabeln;
* Parameter- och lokala variabelnamn samt offsets på stacken;
* typdefinitioner av klass, struktur och data;
* Frame Pointer Utelämnande data för att traversera den inbyggda stacken på x86;
* Namnet och antalet rader i källkodsfilen;

.NET PDB innehåller endast två delar av informationen:
* Källkodsfilnamn och antal rader;
* och namnet på den lokala variabeln;
* All annan data ingår redan i . NET-metadata;  





Föregående:Visual Studio lägger till de kraftfulla redigeringsmöjligheterna i Vim för att göra det svårt att förhindra det!
Nästa:SQL Server skickar e-post med databaser (sp_send_dbmail)
Publicerad på 2018-01-16 15:44:18 |
 Hyresvärd| Publicerad på 2022-12-08 21:44:33 |
VS 2022 sätter upp projektet för att generera en .pdb-fil
https://www.itsvse.com/thread-10397-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com