Depurar componentes escritos en Visual C++

Cuando esté listo para depurar la funcionalidad com+ en los componentes de Microsoft Visual C++, puede configurar el proyecto de Visual C++ o la herramienta administrativa Servicios de componentes para iniciar el depurador. Si usa Visual C++, puede depurar con un cliente remoto mediante OLE RPC y la depuración Just-In-Time (JIT). Si no puede ejecutar el cliente en el depurador o si el cliente se ejecuta en otro equipo, puede usar la opción Iniciar COM+ en el depurador . Encontrará esto en la herramienta administrativa Servicios de componentes como una casilla en la pestaña Avanzadas del cuadro de diálogo Propiedades de la aplicación COM+.

Cuando haya terminado de depurar, debe apagar las aplicaciones COM+ que está depurando. Si se deja en ejecución un proceso de servidor, es posible que reciba un mensaje de error la próxima vez que intente compilar un archivo DLL cuando el archivo DLL existente todavía se cargue en la memoria. Para apagar una aplicación COM+, haga clic con el botón derecho en la aplicación en el árbol de consola y, a continuación, haga clic en Apagar.

Nota

Si usa transacciones, es posible que también quiera aumentar el tiempo de espera de la transacción, que tiene como valor predeterminado 60 segundos. También puede especificar un valor de 0, especificando eficazmente un período de tiempo de espera de transacción infinito. Con la herramienta administrativa Servicios de componentes, cambie la configuración de tiempo de espera de la transacción en la pestaña Opciones de la ventana Propiedades de Mi equipo .

 

Depuración de componentes de aplicación de servidor con Visual C++

Al depurar aplicaciones de servidor COM+, es posible que desee depurar llamadas remotas cargando tanto el cliente como la aplicación de servidor en el depurador. Con Visual C++, puede depurar llamadas remotas a los componentes a través de la configuración Just-In-Time (JIT) y OLE RPC. La configuración JIT hace que el componente compilado inicie el depurador de Visual C++ cuando se produce un error; la configuración DE RPC OLE permite al depurador pasar del cliente al componente mientras recorre el código.

Cuando estas características están habilitadas, puede iniciar el cliente en el depurador. Cuando el cliente realiza una llamada al componente, el depurador depurará el código del componente en el proceso del servidor, incluso si el servidor está en otro equipo de la red. Si es necesario, se inicia automáticamente una sesión de depuración en el equipo servidor. Del mismo modo, una sola ejecución paso después de la instrucción return en el código del componente devolverá la depuración a la siguiente instrucción en el código del cliente.

Nota

Es posible que pueda guardar algunos pasos mediante la configuración Inicio de COM+ en el depurador . Esto le permite especificar el depurador de Visual C++ (u otro) sin tener que realizar configuraciones especiales de depuración en el entorno de Visual C++. Encontrará esto en la herramienta administrativa Servicios de componentes como una casilla en la pestaña Avanzadas del cuadro de diálogo Propiedades de la aplicación COM+. Para obtener más información, vea "Depuración sin Visual C++" en este tema.

 

Cuando la aplicación COM+ que contiene el componente es una aplicación de servidor, debe empezar cerrando la aplicación mediante la herramienta administrativa Servicios de componentes. Para ello, haga clic con el botón derecho en la aplicación COM+ en el árbol de consola y, a continuación, haga clic en Apagar.

Para habilitar la depuración rpc en Visual C++

  1. En Visual C++, en el menú Herramientas , haga clic en Opciones.

  2. En el cuadro de diálogo Opciones , en la pestaña Depurar , active las casillas depuración RPC OLE y Depuración Just-In-Time .

  3. Haga clic en OK.

Para comenzar la depuración, inicie el proyecto de cliente en el depurador.

También puede depurar el componente sin iniciar el cliente en el depurador. En este caso, el componente debe iniciar el depurador por su cuenta. Para ello, el proyecto de componente debe especificar un ejecutable para la sesión de depuración, junto con el identificador de aplicación COM+.

Para permitir que un componente de aplicación de servidor inicie el depurador de Visual C++

  1. En el menú Project, haga clic en Configuración.

  2. En el cuadro de diálogo Project Configuración, en el cuadro Configuración Para, seleccione Depuración de Win32.

  3. En la pestaña Depurar , en el cuadro Categoría , seleccione General.

  4. En el cuadro Ejecutable para la sesión de depuración , escriba la ruta de acceso completa para Dllhost.exe, seguida de un argumento que especifica el identificador de aplicación de la aplicación COM+ que contiene el componente.

    Nota

    Con la herramienta administrativa Servicios de componentes, encontrará el identificador de aplicación en la pestaña General del cuadro de diálogo Propiedades de la aplicación COM+. El siguiente es un ejemplo:

     

    Nota

    C:\Winnt\System32\Dllhost.exe /ProcessID:{applicationID}

     

  5. Haga clic en OK.

Ahora puede establecer puntos de interrupción, iniciar el depurador y empezar a realizar llamadas al componente.

Depuración de componentes de aplicación de biblioteca con Visual C++

Para depurar componentes en una aplicación de biblioteca, debe configurar el proyecto del cliente porque el proceso del cliente hospedará la aplicación de biblioteca.

Para habilitar la depuración de aplicaciones de biblioteca con Visual C++

  1. En Visual C++, en el menú Project, haga clic en Configuración.

  2. En el cuadro de diálogo Project Configuración , en el cuadro Configuración Para , haga clic en Depurar de Win32.

  3. En la pestaña Depurar , en el cuadro Categoría , haga clic en Archivos DLL adicionales.

  4. En la lista Módulos , agregue los archivos DLL del componente en la aplicación de biblioteca. Esto le permite establecer puntos de interrupción antes de que se cargue realmente el archivo DLL.

  5. Haga clic en OK.

Depuración sin Visual C++

Tanto si usa Visual C++ para la depuración, puede usar la opción Iniciar en el depurador para especificar el depurador en el que se deben ejecutar los componentes.

Para especificar un depurador desde la herramienta administrativa Servicios de componentes

  1. En el árbol de consola, seleccione la aplicación de biblioteca COM+ que contiene los componentes que desea depurar.

  2. Haga clic con el botón derecho en la aplicación y, a continuación, haga clic en Propiedades.

  3. En el cuadro de diálogo Propiedades de la aplicación, haga clic en la pestaña Avanzadas .

  4. En Depuración, active la casilla Iniciar en el depurador .

  5. En el cuadro Ruta de acceso del depurador , escriba la ruta de acceso al depurador que desea usar. También puede hacer clic en Examinar para buscar el depurador. A continuación se muestra un ejemplo: C:\Winnt\System32\Ntsd.exe.

  6. Haga clic en OK.

Depurar componentes escritos en Visual Basic