Remote-Debugging in VB6

8

Ist es möglich, einen außerhalb von VB6 gestarteten Prozess remote zu debuggen?

Die Anwendung ist eine VB6-Anwendung mit einigen dll / ocx-Ressourcen. Ich versuche, eine ClickOnce-Bereitstellung der VB6-Anwendung einzurichten, die Registration-Free COM verwendet, aber bei der Ausführung Fehler erhalten hat.

Mein Verständnis der Art und Weise, wie VB6 COM-Registrierungen umleitet, wird wahrscheinlich bedeuten, dass dies nicht möglich ist, aber ich dachte, jemand könnte eine bessere Idee haben.

    
benPearce 05.02.2009, 21:31
quelle

3 Antworten

3

Ich glaube, dass es beim Debuggen in VB6 nicht an eine laufende Binärdatei angehängt wird, sondern stattdessen den Code innerhalb seines eigenen Prozesses interpretiert. Aus diesem Grund zeigen der Task-Manager und die Win32-API beim Debugging VB6.exe als laufende App an.

Wie Sie auch sagen, schließt VB6 manchmal Aufrufe von COM-Bibliotheken, so dass diese Aufrufe nicht immer abgefangen werden können.

Sie werden wahrscheinlich auf intelligente Protokollierung zurückgreifen müssen (dh die Werte von Variablen um die Punkte protokollieren, an denen die Fehler auftreten, in der Hoffnung, die Codezeile zu finden, auf der sie auftritt, und / oder den Status relevanter Variablen.)

Viel Glück

    
Kribensa 05.02.2009, 22:13
quelle
8

Um Darryls Antwort zu unterstützen, schlagen Sie Windbg vor - hier ist ein Blogpost 2006 von einem Microsoft-Typ über die Verwendung von Windbg mit VB6 und 2004 blog post von einem anderen Microsoft-Typ mit einer kurzen Einführung in Windbg.

EDIT: Nur um es ganz klar zu machen. Windbg ist ein kostenloser eigenständiger Debugger von Microsoft. Kompilieren Sie Ihre VB6 EXEs, DLLs und OCXs in nativen Code mit Symbolen (erstellen Sie PDB-Dateien), und Sie können Ihre ClickOnce-Anwendung debuggen.

    
MarkJ 05.02.2009 23:01
quelle
3

Haben Sie windbg ausprobiert? Stellen Sie nur sicher, dass Sie pdb-Dateien für das Projekt haben.

    
Darryl Braaten 05.02.2009 22:20
quelle

Tags und Links