2009-02-05 23 views
8

¿Es posible depurar remotamente un proceso iniciado fuera de VB6?Depuración remota en VB6

La aplicación es una aplicación VB6 con bastantes recursos dll/ocx. Estoy intentando configurar una implementación de ClickOnce, utilizando COM libre de registro, de la aplicación VB6 pero he estado recibiendo errores cuando se ejecuta.

Mi comprensión de la forma en que VB6 redirige los registros COM probablemente signifique que esto no sea posible, pero pensé que alguien podría tener una idea mejor.

Respuesta

3

Creo que al depurar en VB6, no se conecta a un binario en ejecución, sino que interpreta el código dentro de su propio proceso. Esta es la razón por la que Task Manager y las API de Win32 muestran a VB6.exe como la aplicación en ejecución cuando se depura.

También como dices, VB6 algunas veces provoca un cortocircuito en las llamadas a bibliotecas COM, por lo que interceptar estas llamadas no siempre es posible.

Probablemente tenga que recurrir al registro inteligente (es decir, registrar los valores de las variables alrededor de los puntos donde ocurren los errores que se producen con la esperanza de localizar la línea de código en la que se produce, y/o estado de las variables pertinentes.)

Buena suerte

+0

El registro era el camino que asumí que iba a tener que tomar. Simplemente no estaba deseando retro adaptar una gran cantidad de registro extra a una aplicación existente. – benPearce

3

¿usted ha intentado windbg? Solo asegúrate de tener archivos pdb para el proyecto.

8

Para apoyar la respuesta de Darryl sugiriendo Windbg - aquí hay un 2006 blog post por un tipo sobre el uso de Microsoft WinDbg con VB6, y 2004 blog post por otro chico Microsoft con una breve introducción a WinDbg.

EDITAR: Para que quede totalmente claro. Windbg es un depurador autónomo gratuito de Microsoft. Compile sus EXE VB6, DLL y OCX en código nativo con símbolos (cree archivos PDB) y podrá depurar su aplicación ClickOnce.

Cuestiones relacionadas