Depurando componentes escritos em Visual C++
Quando você estiver pronto para depurar a funcionalidade COM + em seus componentes do Microsoft Visual C++, você pode configurar o projeto Visual C++ ou a ferramenta administrativa de serviços de componentes para iniciar o depurador. Se você estiver usando o Visual C++, você pode depurar com um cliente remoto usando OLE RPC e depuração just-in-time (JIT). Se você não conseguir executar o cliente no depurador ou se o cliente estiver sendo executado em outra máquina, poderá usar a configuração COM+ Launch no depurador . Você encontrará isso na ferramenta administrativa Serviços de Componentes como uma caixa de seleção na guia Avançado da caixa de diálogo Propriedades do aplicativo COM+.
Quando terminar de depurar, você deve desligar os aplicativos COM+ que você está depurando. Se um processo de servidor for deixado em execução, você poderá receber uma mensagem de erro na próxima vez que tentar criar uma DLL quando a DLL existente ainda estiver carregada na memória. Para desligar um aplicativo COM+, clique com o botão direito do mouse no aplicativo na árvore de console e clique em Desligar.
Observação
Se você estiver usando transações, talvez também queira aumentar o tempo limite da transação, que tem como padrão 60 segundos. Você também pode especificar um valor de 0, especificando efetivamente um período de tempo limite de transação infinito. Usando a ferramenta administrativa Serviços de Componentes, altere a configuração de tempo limite da transação na guia Opções da janela Propriedades do Meu Computador.
Depurando componentes de aplicativo de servidor com o Visual C++
Ao depurar aplicativos de servidor COM+, convém depurar chamadas remotas carregando o aplicativo cliente e o aplicativo servidor no depurador. Com o Visual C++, você pode depurar chamadas remotas para seus componentes por meio das configurações just-in-time (JIT) e OLE RPC. A configuração JIT faz com que o componente compilado inicie o depurador do Visual C++ quando ocorre um erro; a configuração OLE RPC permite que o depurador passe de cliente para componente à medida que você percorre seu código.
Quando esses recursos estão habilitados, você pode iniciar seu cliente sob o depurador. Quando o cliente faz uma chamada para o componente, o depurador entra no código do componente no processo do servidor, mesmo se o servidor estiver em um computador diferente na rede. Uma sessão de depuração é iniciada automaticamente no computador servidor, se necessário. Da mesma forma, passar pela instrução return no código do componente retornará a depuração para a próxima instrução no código do cliente.
Observação
Você poderá salvar algumas etapas usando a configuração COM+ Launch no depurador . Isso permite que você especifique o depurador do Visual C++ (ou outro) sem ter que fazer configurações especiais de depuração no ambiente do Visual C++. Você encontrará isso na ferramenta administrativa Serviços de Componentes como uma caixa de seleção na guia Avançado da caixa de diálogo Propriedades do aplicativo COM+. Para obter mais informações, consulte "Depurando sem Visual C++" neste tópico.
Quando o aplicativo COM+ que contém seu componente é um aplicativo de servidor, você deve começar desligando o aplicativo usando a ferramenta administrativa Serviços de Componentes. Para fazer isso, clique com o botão direito do mouse no aplicativo COM+ na árvore de console e, em seguida, clique em Desligar.
Para habilitar a depuração RPC no Visual C++
No Visual C++, no menu Ferramentas , clique em Opções .
Na caixa de diálogo Opções, na guia Depurar, marque as caixas de seleção Depuração OLE RPC e Depuração em tempo justo.
Clique em OK.
Para iniciar a depuração, inicie o projeto cliente no depurador.
Você também pode depurar seu componente sem iniciar seu cliente no depurador. Nesse caso, o componente deve iniciar o depurador por conta própria. Para fazer isso, seu projeto de componente deve especificar um executável para a sessão de depuração, juntamente com a ID do aplicativo COM+.
Para habilitar um componente de aplicativo de servidor para iniciar o depurador do Visual C++
No menu Project , clique em configurações .
Na caixa de diálogo Configurações do projeto, na caixa Configurações para, selecione Depurar Win32.
Na guia Depurar, na caixa Categoria, selecione Geral.
Na caixa Executável para sessão de depuração, insira o caminho totalmente qualificado para Dllhost.exe, seguido por um argumento especificando a ID do aplicativo COM+ que contém o componente.
Observação
Usando a ferramenta administrativa Serviços de Componentes, você encontrará a ID do aplicativo na guia Geral da caixa de diálogo Propriedades do aplicativo COM+. A seguir está um exemplo:
Observação
C:\Winnt\System32\Dllhost.exe /ProcessID:{applicationID}
Clique em OK.
Agora você pode definir pontos de interrupção, iniciar o depurador e começar a fazer chamadas para seu componente.
Depurando componentes de aplicativo de biblioteca com o Visual C++
Para depurar componentes em um aplicativo de biblioteca, você deve configurar o projeto do cliente porque o processo do cliente hospedará o aplicativo de biblioteca.
Para habilitar a depuração de aplicativos de biblioteca com o Visual C++
No Visual C++, no menu Project , clique em configurações .
Na caixa de diálogo Configurações do projeto, na caixa Configurações para, clique em Depurar Win32.
Na guia Depurar, na caixa Categoria, clique em DLLs adicionais.
Na lista Módulos, adicione as DLLs de componente em seu aplicativo de biblioteca. Isso permite que você defina pontos de interrupção antes que sua DLL seja realmente carregada.
Clique em OK.
Depuração sem Visual C++
Se você estiver ou não usando o Visual C++ para depuração, você pode usar a configuração Iniciar no depurador para especificar o depurador no qual seus componentes devem ser executados.
Para especificar um depurador da ferramenta administrativa Serviços de Componentes
Na árvore de console, selecione o aplicativo de biblioteca COM+ que contém os componentes que você deseja depurar.
Clique com o botão direito do mouse no aplicativo e clique em Propriedades.
Na caixa de diálogo Propriedades do aplicativo, clique na guia Avançado.
Em Depuração, marque a caixa de seleção Iniciar no depurador .
Na caixa Caminho do depurador, digite o caminho para o depurador que você deseja usar. Você também pode clicar em Procurar para localizar o depurador. Veja a seguir um exemplo: C:\Winnt\System32\Ntsd.exe.
Clique em OK.
Tópicos relacionados