Depuración de servidores y contenedores COMCOM Server and Container Debugging

Las aplicaciones COM realizan una serie de tareas fuera del control directo del programador.COM applications perform a number of tasks outside of the programmer's direct control. La comunicación entre archivos DLL, los contadores de uso en objetos y las operaciones del Portapapeles son sólo algunas de las áreas en las que se puede encontrar un comportamiento inesperado.Communication between DLLs, usage counts on objects, and Clipboard operations are just a few of the areas where you might encounter unexpected behavior. Cuando esto ocurre, el primer paso es determinar el origen del problema.When this happens, your first step is to track down the source of the problem.

El depurador de Visual Studio permite la depuración superficial o exhaustiva de contenedores y servidores.The Visual Studio debugger supports stepping across and into containers and servers. Esto incluye la capacidad de ejecutar instrucciones paso a paso entre llamadas a procedimientos remotos (RPC).This includes the ability to step across remote procedure calls (RPC).

Depurar un servidor COM y un contenedor en la misma soluciónDebugging a COM Server and Container in the Same Solution

Se puede depurar un servidor y contenedor COM mediante dos proyectos dentro de la misma solución.You can debug a COM server and container using two projects within the same solution. Establezca los puntos de interrupción apropiados en cada proyecto y depure.Set appropriate breakpoints in each project and debug. Cuando el contenedor llama al servidor que visita un punto de interrupción, el contenedor esperará hasta que regrese el código del servidor, es decir, hasta que termine de depurarlo.When the container makes a call into the server that hits a breakpoint, the container will wait until the server code returns (that is, until you finish debugging it).

La depuración de un contenedor COM es similar a la de un programa estándar.Debugging a COM container is similar to debugging a standard program. Una diferencia está en la depuración de un evento que genera una devolución de llamada (por ejemplo, al arrastrar datos a la aplicación contenedora).One difference is when you debug an event that generates a callback (such as dragging data over the container application). En este caso, debe establecer un punto de interrupción en la función de devolución de llamada.In this case, you must set a breakpoint in the callback function.

Depurar una aplicación de servidor sin información del contenedorDebugging a Server Application Without Container Information

Si no tiene o no desea utilizar información de depuración para la aplicación contenedora, puede empezar el proceso de depuración de la aplicación del servidor en tres pasos:If you do not have or do not want to use debugging information for your container application, starting to debug the server application is a three-step process:

  1. Comience a depurar el servidor como si se tratara de una aplicación normal.Start debugging the server as a normal application.

  2. Establezca puntos de interrupción donde desee.Set breakpoints as desired.

  3. Inicie la aplicación contenedora.Start the container application.

Depurar una aplicación de aislamiento (SDI) de dominio y servidorDebugging a Server and Domain Isolation (SDI) Application

Si está depurando una aplicación de servidor SDI, debe especificar /Embedding o /Automation en el argumentos de línea de comandos propiedad en el proyecto cuadro de diálogo de páginas de propiedades de C o C++, C#, o Proyectos de Visual Basic.If you are debugging an SDI server application, you must specify /Embedding or /Automation in the Command line arguments property in the Project Property Pages dialog box for C/C++, C#, or Visual Basic projects.

Con los argumentos de esta línea de comandos, el depurador puede iniciar la aplicación de servidor como si se iniciara desde un contenedor.With these command line arguments, the debugger can launch the server application as though it were launched from a container. Después, al iniciar el contenedor desde el Administrador de programas o desde el Administrador de archivos, el contenedor utilizará la instancia del servidor que se inició en el depurador.Starting the container from Program Manager or File Manager will then cause the container to use the instance of the server started in the debugger.

Para tener acceso a la proyecto cuadro de diálogo páginas de propiedades, haga clic en el proyecto en el Explorador de soluciones y, a continuación, elija Propiedades en el menú contextual.To access the Project Property Pages dialog box, right-click your project in Solution Explorer, and then choose Properties from the shortcut menu. Para buscar la propiedad Argumentos de la línea de comandos, haga clic en la ficha Depurar y vaya a Opciones de inicio.To find the Command line arguments property, expand the Configuration Properties category and click the Debugging page.

Vea tambiénSee Also

Depurar COM y ActiveXCOM and ActiveX Debugging