Partilhar via


Depuração de projetos DLL

Os seguintes modelos criam DLLs:

  • (C++, C# e Visual Basic) Biblioteca de classe

  • (C++, C# e Visual Basic): biblioteca de controle do Windows Forms

    Depuração de uma biblioteca de controle do Windows é semelhante a depuração de um projeto de biblioteca de classe.Na maioria dos casos, você chamará o controle do Windows de outro projeto.Quando você depurar o projeto de chamada, entrar o código de controle do Windows, definir pontos de interrupção e executar outras operações de depuração.Para obter mais informações, consulte Controles de Formulários Windows.

  • (C# e Visual Basic): Web Control Library

    Para mais informações, consulte Web Control Library (código gerenciado).

  • (C++): controle de ActiveX do MFC e MFC inteligente dispositivo ActiveX controle

    ActiveX controles são controles que podem ser baixados da Internet em um computador cliente e exibidos e ativados em páginas da Web.

    Controles de ActiveX de depuração é semelhante a outros tipos de controles de depuração porque não pode ser executados como autônomos, mas deve ser incorporados em uma página da Web em HTML.Para mais informações, consulte Como: Depurar um controle ActiveX.

  • (C++): DLL de dispositivo inteligente do MFC

    Para mais informações, consulte MFC Debugging Techniques.

Esta seção também contém informações sobre os seguintes tópicos:

Este tópico contém as seguintes seções fornecem considerações sobre como preparar depurar bibliotecas de classe:

  • Criando uma versão de depuração

  • Depuração de modo misto

  • Alterando configurações padrão

  • Maneiras para depurar a DLL

  • O aplicativo de chamada

  • Controles em uma página da Web

  • A janela Immediate

Criando uma versão de depuração

Não importa como você iniciar a depuração, certifique-se de criar a versão de depuração da DLL primeiro e certifique-se de que a versão de depuração está no local onde o aplicativo espera encontrá-lo.Isso pode parecer óbvio, mas se você esquecer essa etapa, o aplicativo pode localizar uma versão diferente da DLL e carregá-lo.O programa continuará a execução, enquanto você fica imaginando por que o ponto de interrupção nunca foi atingido.Quando você está depurando, você pode verificar quais DLLs seu programa carregou abrindo o depurador módulos janela.O módulos janela lista cada DLL ou EXE carregados no processo que você está depurando.Para mais informações, consulte Como: usar a janela de módulos.

Para o depurador anexar o código escrito em C++, o código deve emitir DebuggableAttribute.Você pode adicionar isso ao seu código automaticamente por meio da vinculação com o /ASSEMBLYDEBUG opção de vinculador.

Depuração de modo misto

O aplicativo que chama sua DLL pode ser gravado em código gerenciado ou código nativo.Se a DLL gerenciada é chamada pelo código nativo e deseja depurar ambos, gerenciado e nativos depuradores devem estar habilitados.Você pode selecionar isso o <Project>Páginas de propriedades caixa de diálogo ou janela.Como fazer isso depende se você iniciar a depuração de projeto de DLL ou o projeto de aplicativo de chamada.Para mais informações, consulte Como: Depurar no modo misto.

Alterando configurações padrão

Quando você cria um projeto de aplicativo do console com o modelo de projeto Visual Studio cria automaticamente as configurações necessárias para as configurações Debug e Release.Se necessário, você pode alterar essas configurações.Para obter mais informações, consulte Configurações de projeto para uma configuração de depuração do C++, Configurações de projeto para configurações de depuração do C#, Configuração de depuração de configurações do projeto para um Visual Basic e Como: definir configurações Debug e Release.

Maneiras para depurar a DLL

Cada um dos projetos nesta seção cria uma DLL.Não é possível executar uma DLL diretamente; ele deve ser chamado por um aplicativo, geralmente um EXE.Para mais informações, consulte Criando e gerenciando projetos do Visual C++.O aplicativo de chamada pode ajustar qualquer um dos seguintes critérios:

  • Um aplicativo criado em outro projeto na mesma Visual Studio solução que contém a biblioteca de classe.

  • Um aplicativo existente já implantado em um computador de teste ou produção.

  • Localizado na Web e acessado através de uma URL.

  • Um aplicativo da Web que contém uma página da Web que incorpore a DLL.

ms164704.collapse_all(pt-br,VS.110).gifDepurando o aplicativo de chamada

Para depurar uma DLL, inicie depuração do aplicativo de chamada, geralmente um EXE ou um aplicativo da Web.Há várias maneiras para depurar.

  • Se você tiver um projeto para o aplicativo de chamada, você pode abrir o projeto e iniciar a execução do Debug menu.Para mais informações, consulte Como: iniciar a execução.

  • Se o aplicativo de chamada é um programa existente já implantado em um computador de teste ou de produção e já está em execução, você pode anexar a ele.Use este método se a DLL for um controle hospedado pelo Internet Explorer ou um controle em uma página da Web.Para mais informações, consulte Como: anexar a um processo em execução.

  • Para depurá-lo do projeto de DLL.Para mais informações, consulte Como: Depurar a partir de um projeto DLL.

  • Você pode depurar a partir do Visual Studioimediata janela.Nesse caso, o imediata janela desempenha a função do aplicativo.

Antes de iniciar a depuração do aplicativo de chamada, você geralmente deseja definir um ponto de interrupção na biblioteca de classes.Para mais informações, consulte Breakpoints and Tracepoints.Quando o ponto de interrupção é atingido, você pode percorrer o código, observando a ação em cada linha, até isolar o problema.Para mais informações, consulte [NIB] Visão geral da depuração de códigos.

ms164704.collapse_all(pt-br,VS.110).gifControles em uma página da Web

Para depurar um controle de página da Web, crie um ASP.NET página que incorpore, se essa página já não existir.Coloque pontos de interrupção no código da página da Web, bem como o código de controle.Você então chama a página da Web Visual Studio.

Antes de iniciar a depuração do aplicativo de chamada, você geralmente deseja definir um ponto de interrupção na DLL.Quando o ponto de interrupção é atingido, você pode percorrer o código, observando a ação em cada linha, até isolar o problema.Para obter mais informações, consulte Breakpoints and Tracepoints e [NIB] Visão geral da depuração de códigos.

ms164704.collapse_all(pt-br,VS.110).gifA janela Immediate

Você pode avaliar funções ou métodos na DLL sem ter um aplicativo de chamada.Faça a depuração em tempo de design e você usar o imediata janela.Depurar dessa maneira, faça a siga estas etapas ao projeto DLL está aberto:

  1. Abrir o depurador imediata janela.

  2. Para testar um método chamado Test na classe Class1, instanciar um objeto do tipo Class1 digitando o seguinte código C# na janela imediata.Esse código gerenciado funciona para Visual Basic e C++, com alterações de sintaxe apropriadas:

        Class1 obj = new Class1();
    

    Em C#, todos os nomes devem ser totalmente qualificados.Além disso, quaisquer métodos ou variáveis devem ser o escopo atual e o contexto da sessão de depuração.

  3. Supondo que Test tem um int parâmetro, avaliar Test usando o imediata janela:

       ?obj.Test(10)
    

    O resultado será impresso na imediata janela.

  4. Você pode continuar a depuração Test colocando um ponto de interrupção dentro dele e avaliando a função novamente:

       ?obj.Test(10);
    

    O ponto de interrupção será atingido e você poderá passar por Test.Depois da execução deixar Test, o depurador estará novamente no modo de Design.

Consulte também

Referência

Configurações de projeto para uma configuração de depuração do C++

Conceitos

Configurações de projeto para configurações de depuração do C#

Configuração de depuração de configurações do projeto para um Visual Basic

Segurança do depurador

Outros recursos

Depurando código gerenciado

Preparação para depuração: Tipos de projeto C++ Visual

Preparação para depuração: C#, F# e tipos de projeto de Visual Basic