2009-02-05 14 views
8

È possibile eseguire il debug in remoto di un processo avviato all'esterno di VB6?Debug remoto in VB6

L'applicazione è un'applicazione VB6 con alcune risorse dll/ocx. Sto tentando di impostare una distribuzione ClickOnce, utilizzando COM senza registrazione, dell'app VB6, ma ho riscontrato errori durante l'esecuzione.

La mia comprensione del modo in cui VB6 reindirizza le registrazioni COM probabilmente significa che ciò non è possibile ma ho pensato che qualcuno potesse avere un'idea migliore.

risposta

3

Credo che durante il debug in VB6, non si colleghi a un binario in esecuzione, ma interpreti il ​​codice all'interno del proprio processo. Questo è il motivo per cui il Task Manager e le API Win32 mostrano VB6.exe come app in esecuzione durante il debug.

Anche come dici tu, VB6 a volte cortocircuita le chiamate verso le librerie COM in modo da intercettare queste chiamate non è sempre possibile.

Probabilmente dovrai ricorrere al logging intelligente (cioè registrare i valori delle variabili attorno ai punti in cui si verificano gli errori nella speranza di individuare la riga di codice su cui si verifica e/o il stato delle variabili rilevanti.)

Buona fortuna

+0

La registrazione era il percorso che presumevo che avrei dovuto prendere. Semplicemente non vedevo l'ora che il retro adattasse un sacco di registrazione aggiuntiva a un'app esistente. – benPearce

3

hai provato windbg? Assicurati solo di avere i file pdb per il progetto.

8

Per sostenere la risposta di Darryl suggerendo Windbg - ecco una 2006 blog post da un ragazzo di Microsoft sull'utilizzo di Windbg con VB6, e 2004 blog post da un altro ragazzo Microsoft con una breve introduzione a Windbg.

MODIFICA: Solo per renderlo totalmente chiaro. Windbg è un debugger standalone gratuito di Microsoft. Compila i tuoi VB6 EXE, DLL e OCX in codice nativo con simboli (crea file PDB) e sarai in grado di eseguire il debug dell'applicazione ClickOnce.