Freigeben über


Debuggen mit WinDbg

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Azure Artifacts stellt einen dedizierten Symbolserver für die Veröffentlichung von Symbolen bereit. Mit diesem Server können Sie einen Debugger verbinden, der automatisch die richtigen Symboldateien abruft, sodass Sie Ihre Anwendung effizient debuggen können. Mit Tools wie WinDbg können Sie eine ausführbare Datei laden, den Debugger an einen laufenden Prozess anfügen, Ihre Symbole nutzen, Haltepunkte einrichten und Ihren Code systematisch analysieren.

Hinzufügen eines Symbolservers zu WinDbg

Um den Azure Artifacts-Symbolserver zu verwenden, müssen Sie Ihre Organisation dem Suchpfad für Symbole hinzufügen, aber bevor wir dies tun können, müssen wir zuerst ein persönliches Zugriffstoken erstellen.

  1. Erstellen Sie ein persönliches Zugriffstoken mit Symbolen (lesebereich), und kopieren Sie es in die Zwischenablage.

  2. Öffnen Sie WinDbg, oder installieren Sie es, sofern noch nicht geschehen.

  3. Wählen Sie "Datei" und dann "OpenExecutable " aus, um die ausführbare Datei zu laden, die Sie debuggen möchten.

  4. Führen Sie den folgenden Befehl aus, um den Symbolpfad festzulegen. Ersetzen Sie den Platzhalter durch Ihren spezifischen Organisationsnamen:

    .sympath+ https://artifacts.dev.azure.com/<ORGANIZATION_NAME>/_apis/symbol/symsrv
    
  5. Legen Sie einen Haltepunkt fest, indem Sie den Befehl "bp" ausführen. dadurch wird eine Symbolanforderung ausgelöst.

  6. Fügen Sie während der Authentifizierungsaufforderung das zuvor generierte persönliche Zugriffstoken ein. Sie können das Benutzernamenfeld leer lassen. WinDbg ruft die Symbole für Ihre ausführbare Datei ab.

  7. Um zu überprüfen, ob Ihre Symbole geladen werden, führen Sie den lm-Befehl aus, um alle geladenen Module auflisten zu können.

Starten des Debugvorgangs

WinDbg verbessert den Umfang und die Vielseitigkeit des Debuggens und ermöglicht eine effektive Problembehandlung von Komponenten sowohl im Benutzermodus als auch im Kernelmodus: