Depuração de servidor COM e contêinerCOM Server and Container Debugging

Os aplicativos COM executam um número de tarefas fora do controle direto do programador.COM applications perform a number of tasks outside of the programmer's direct control. A comunicação entre DLL, as contagens de uso em objetos e as operações da área de transferência são apenas algumas das áreas onde você pode encontrar comportamento inesperado.Communication between DLLs, usage counts on objects, and Clipboard operations are just a few of the areas where you might encounter unexpected behavior. Quando isso acontece, a primeira etapa é rastrear a origem do problema.When this happens, your first step is to track down the source of the problem.

O depurador do Visual Studio oferece suporte à depuração em contêineres e servidores.The Visual Studio debugger supports stepping across and into containers and servers. Isso inclui a capacidade de depurar as chamadas de procedimento remoto (RPC).This includes the ability to step across remote procedure calls (RPC).

Depuração de um servidor COM e contêiner na mesma soluçãoDebugging a COM Server and Container in the Same Solution

Você pode depurar um servidor COM e um contêiner usando dois projetos dentro da mesma solução.You can debug a COM server and container using two projects within the same solution. Defina pontos de interrupção apropriados em cada projeto e depuração.Set appropriate breakpoints in each project and debug. Quando o contêiner faz uma chamada no servidor que atinge um ponto de interrupção, ele aguardará até que o código de servidor retorne (ou seja, até você concluir a depuração).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).

Depurar um contêiner COM é semelhante a depurar um programa padrão.Debugging a COM container is similar to debugging a standard program. Uma diferença é quando você depura um evento que gera um retorno de chamada (por exemplo, arrastar dados sobre o aplicativo de contêineres).One difference is when you debug an event that generates a callback (such as dragging data over the container application). Nesse caso, você deve definir um ponto de interrupção na função de retorno de chamada.In this case, you must set a breakpoint in the callback function.

Depurando um aplicativo de servidor sem informações de contêinerDebugging a Server Application Without Container Information

Se você não tiver ou não desejar usar informações de depuração para seu aplicativo de contêiner, começar a depurar o aplicativo de servidor é um processo de três etapas: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. Inicie a depuração do servidor como um aplicativo normal.Start debugging the server as a normal application.

  2. Defina pontos de interrupção como desejados.Set breakpoints as desired.

  3. Inicie o aplicativo de contêiner.Start the container application.

Depurando um aplicativo de isolamento (SDI) de domínio e servidorDebugging a Server and Domain Isolation (SDI) Application

Se você estiver depurando um aplicativo de servidor SDI, você deve especificar /Embedding ou /Automation no argumentos de linha de comando propriedade o projeto caixa de diálogo páginas de propriedades para C/C++, c#, ou Projetos do 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.

Com esses argumentos de linha de comando, o depurador pode iniciar o aplicativo de servidor como se tivesse sido iniciado de um contêiner.With these command line arguments, the debugger can launch the server application as though it were launched from a container. Iniciar o contêiner do Gerenciador de Programas ou do Gerenciador de Arquivos fará com que o contêiner use a instância do servidor iniciada no 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 acessar o projeto caixa de diálogo páginas de propriedades, clique em seu projeto no Gerenciador de soluções e escolha Propriedades no menu de atalho.To access the Project Property Pages dialog box, right-click your project in Solution Explorer, and then choose Properties from the shortcut menu. Para localizar a propriedade Argumentos de linha de comando, expanda a categoria Propriedades de Configuração e clique na página Depuração.To find the Command line arguments property, expand the Configuration Properties category and click the Debugging page.

Consulte tambémSee Also

Depuração de COM e ActiveXCOM and ActiveX Debugging