Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 36247|Antwort: 2

[Quelle] vs. Was und warum .pdb-Dateien generiert werden

[Link kopieren]
Veröffentlicht am 16.01.2018 15:43:04 | | |
Wofür ist eine PDB-Datei da?

PDB-Dateien: Was jeder Entwickler wissen muss

Beispiel für ein PDB-Szenario:

.net/c# Die log4net-Fehlerausnahme zeichnet die Ursache der Zeilennummer nicht auf.
http://www.itsvse.com/thread-3928-1-1.html
(Quelle: Architekt)


Was ist eine PDB-Datei?

Die meisten Entwickler sollten wissen, dass PDB-Dateien zur Unterstützung des Software-Debuggings verwendet werden. Aber wie genau er funktioniert, kennen wir vielleicht nicht. Dieser Artikel beschreibt die Speicherung und den Inhalt von PDB-Dateien. Er beschreibt auch, wie der Debugger die PDB-Datei findet, die binay entspricht, und wie der Debugger die Quellcodedatei findet, die binay entspricht. Dieser Artikel richtet sich an alle Native- und Managed-Entwickler.

Bevor wir beginnen, definieren wir zwei Begriffe: privater Build, der verwendet wird, um einen Build zu bezeichnen, der auf der eigenen Maschine des Entwicklers generiert wurde; Öffentlicher Build, was bedeutet, dass ein Build auf einer öffentlichen Build-Maschine generiert wird. Der private Bau ist relativ einfach, weil PDB und Binay am selben Ort sind und die Probleme meist mit öffentlichem Bau zu tun haben.  

Das Wichtigste, was alle Entwickler wissen müssen, ist, dass "PDB-Dateien genauso wichtig sind wie Quellcode", ohne die man nicht einmal debuggen kann. Für einen öffentlichen Build muss der Symbolserver alle PDBs speichern, und wenn der Benutzer einen Fehler meldet, kann der Debugger automatisch die entsprechende PDB-Datei in binay finden, und sowohl Visual Studio als auch Windbg wissen, wie man auf den Symbolserver zugreift. Bevor du PDB und Binay auf den Symbolserver speicherst, musst du außerdem den PDB-Lauf als Quellindex indexieren, um PDB und Quellcode zu verknüpfen.  

Der nächste Teil setzt voraus, dass die Symbolserver- und Quellserver-Indexierung bereits eingerichtet sind. TFS2010 kann so einfach wie Quellcode-Indizierung und Symbolserver-Kopierung für einen neuen Build erfolgen.

2. Der Inhalt der PDB-Akte

Offiziell startet der Inhalt von PDB, PDB ist kein öffentlich zugängliches Dateiformat, aber Microsoft stellt eine API bereit, um Daten aus PDB zu erhalten.

Das native C++ PDB enthält folgende Informationen:
* öffentliche, private und statische Funktionsadressen;
* Name und Adresse der globalen Variablen;
* Parameter- und lokale Variablennamen sowie Offsets auf dem Stack;
* Typdefinitionen von Klasse, Struktur und Daten;
* Frame Pointer Auslassdaten zum Durchqueren des nativen Stacks auf x86;
* Name und Anzahl der Zeilen in der Quellcodedatei;

Das .NET PDB enthält nur zwei Informationsteile:
* Quellcode-Dateiname und Anzahl der Zeilen;
* und dem Namen der lokalen Variablen;
* Alle anderen Daten sind bereits in der enthalten. NET-Metadaten;  





Vorhergehend:Visual Studio fügt die leistungsstarken Bearbeitungsfunktionen von Vim hinzu, um es schwer zu verhindern!
Nächster:SQL Server Versand von E-Mails über Datenbanken (sp_send_dbmail)
Veröffentlicht am 16.01.2018 15:44:18 |
 Vermieter| Veröffentlicht am 08.12.2022 21:44:33 |
VS 2022 richtet das Projekt so ein, dass es eine .pdb-Datei generiert
https://www.itsvse.com/thread-10397-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com