Frage

Was ist Ihre Lieblingstechnik zum Starten einer Remote-Debugging-Sitzung im Windbg-Benutzermodus?Warum bevorzugen Sie diese Technik gegenüber anderen Techniken?(für und Wider)

Es gibt mindestens vier verschiedene Möglichkeiten, ein Remote-Debugging im Benutzermodus mit windbg durchzuführen, wie im Abschnitt „Remote-Debugging“ der Hilfedatei für Debugging-Tools für Windows dokumentiert.

  1. Führen Sie die App auf dem Ziel aus und stellen Sie dann vom Host-Windbg aus eine Verbindung zu ihr her
  2. Lassen Sie den Host windbg remote.exe verwenden, um die App auf dem Ziel zu starten
  3. Lassen Sie den „Smart Client“-Host windbg die App auf dem Ziel über einen Prozessserver starten, der auf dem Ziel ausgeführt wird
  4. Führen Sie eine Windbg-Instanz auf dem Zielcomputer mit der Option „-server“ aus, um automatisch einen Server zu starten, und stellen Sie dann von einem zweiten Computer aus eine Verbindung zum Server her.
War es hilfreich?

Lösung

Es gibt keine „beste“ Lösung.Jede der Möglichkeiten hat Vor- und Nachteile und es ist gut, sie alle zu verstehen.Es hängt von mehreren Faktoren ab wie:

  • Wo befinden sich die Symbole?
  • welcher PC Zugang zum Internet hat, um die OS-Symbole herunterzuladen
  • Welche Datenmenge dürfen Sie auf den Server kopieren (Clients akzeptieren oft besser, wenn es nur eine einzelne Exe ist)
  • Wie groß ist die Bandbreite zwischen Client und Server?
  • Benötigen Sie andere Befehle als nur CDB/WinDbg, z.Zugriff auf CMD, dann ziehen Sie remote.exe in Betracht
  • der auf der Serverseite verfügbar ist, ein Debugging-Experte, dem man viele kryptische Befehle leicht sagen kann oder ein normaler Benutzer, der kaum weiß, wie man eine Eingabeaufforderung startet
  • Da sich beide Seiten in einem privaten Netzwerk befinden, benötigen Sie einen „Man-in-the-Middle“-Server, um aufeinander zugreifen zu können (oder alternativ eine Portweiterleitung, was die IT-Leute nicht wollen und deren Einrichtung Tage dauern kann). hoch)

Vergessen Sie bei diesen vier Optionen nicht, dass Kunden häufig genau sehen möchten, was Sie tun, und daher eine RDP-Sitzung, Teamviewer oder ähnliches benötigen.Das ist etwas, was sie verstehen.

Andere Tipps

Option 1 ist mein Favorit, weil sie die einfachste ist.Ich kann die App wie gewohnt starten, ohne mir Sorgen machen zu müssen, dass WinDbg das richtige Arbeitsverzeichnis einstellt, Befehlszeilenargumente übergibt usw.

Zum Glück habe ich keinen Fall erlebt, in dem das nicht funktioniert hat!

Ich tendiere dazu, Option 4 (-server) zu verwenden, weil es die einzige Option ist, die nicht „knallt“, wenn Sie lange genug in den Kernel-Debugger einbrechen, bis die TCP-Verbindung abbricht.Dies ist jedoch komplexer und nicht vollständig zufriedenstellend.Ich suche also nach „Best Practices“.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top