Partilhar via


Depuração de projetos DLL

Este tópico se aplica a:

Edição

Visual Basic

C#

C++

Desenvolvedores Web

Express

Padrão

PRO e equipe

Legenda de tabela:

Aplica-se

Não é aplicada

Comando ou comandos oculta por padrão.

Os seguintes modelos criam DLLs:

  • (C++, translation from VPE for Csharp e Visual Basic) biblioteca de classes

  • (C++, translation from VPE for Csharp e Visual Basic): Biblioteca de Controle de Windows Forms

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

  • (Translation from VPE for Csharp e Visual Basic): Biblioteca de Controle da Web

    Para obter mais informações, consulte Web Control Library (Código Gerenciado).

  • (C++): Controle ActiveX do MFC e o MFC dispositivo inteligente ActiveX Control

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

    Depuração de controles ActiveX é semelhante a outros tipos de controles de depuração porque não é possível executar sistema autônomo autônomos, mas deve ser incorporados em uma página da Web em HTML.Para obter mais informações, consulte Como: Depurar um Controlarar ActiveX.

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

    Para obter mais informações, consulte MFC Depurando Techniques.

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

Este tópico contém as seções a seguir, que fornecem considerações sobre como preparar depurar bibliotecas de classes:

  • Criando uma versão de depuração

  • Modo misto de depuração

  • Alterando configurações padrão

  • Maneiras de 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ê inicia a depurar, certifique-se de que você criar a versão de depurar da DLL primeiro e certifique-se de que a versão de depurar esteja no local onde o aplicativo espera localizá-lo.Isso pode parecer óbvio, mas se você esquecer desta etapa, o aplicativo pode localizar uma versão diferente da DLL e carregá-lo.O programa então continuará a ser executado, enquanto você fica imaginando por que o ponto de interrupção nunca foi atingido.Quando você está depuração, você pode verificar quais DLLs seu programa carregou abrindo Módulos janela.A janela Modules lista cada DLL ou EXE carregados no processo que você está depurando.Para obter mais informações, consulte Como: Usar a janela Modules.

Para o depurador anexar a códigos escritos em C++, o código precisa emitir DebuggableAttribute. Você pode adicionar isso para que seu código automaticamente por meio da vinculação com a opção /ASSEMBLYDEBUG do vinculador.

Modo misto de depuração

O aplicativo que chama sua DLL pode ser escrito em código gerenciado ou código nativo.Se sua DLL gerenciada é chamado pelo código nativo e você deseja depurar ambos, gerenciado e depuradores nativos devem ambos ser habilitados.You can select this in the <Project>Property Pages dialog box or window.Como fazer isso depende de como você iniciou a depuração do projeto de DLL ou o projeto do aplicativo que chama.Para obter mais informações, consulte Como: depurar in modo misto.

Alterando configurações padrão

Quando você criar um projeto de aplicativo console com o modelo de projeto, Visual Studio automaticamente criar s necessário configurações para as configurações depurar e versão. Se necessário, você pode alterar essas configurações.Para obter mais informações, consulte Configurações do projeto para uma depurar do C++, Configurações de projeto para translation from VPE for Csharp depurar configurações, Configurações do projeto para uma configuração de depuração no Visual Basic e Como: Conjunto depurar and versão Configurations.

Maneiras de 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 obter mais informações, consulte Criar e gerenciar projetos visual C++.O aplicativo de chamada pode ajuste qualquer um dos seguintes critérios:

  • Um aplicativo criado em outro projeto no mesmo Visual Studio solução que contém a biblioteca de classes.

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

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

  • Um aplicativo Web Web que contenha uma página da Web que incorpora a DLL.

Depurando o aplicativo de chamada

Para depurar uma DLL, inicie depurando o aplicativo de chamada, geralmente um executável ou um aplicativo da Web.Há várias maneiras para depurar.

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

  • Se o aplicativo de chamada é um programa existente já implantado em um computador de teste ou produção e já está sendo executado, você poderá 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 obter mais informações, consulte Como: Anexar a um processo em execução.

  • Você pode depurá-la a partir do projeto de DLL.Para obter mais informações, consulte Como: depurar de um projeto de DLL.

  • You can debug it from the Visual Studio Immediate window. In this case, the Immediate window plays the role of the application.

Antes de iniciar a depuração do aplicativo de chamada, você geralmente desejará definir um ponto de interrupção na biblioteca de classes.Para obter mais informações, consulte Pontos de interrupção e Tracepoints.Quando o ponto de interrupção é alcançado, você pode depurar o código, observando a ação em cada linha, até que você isole o problema.Para obter mais informações, consulte Visão geral de nível de código.

Controles em uma página da Web

Para depurar um controle de página da Web, crie um ASP.NET página que o incorpore, se essa página ainda não existir. Você colocar sistema autônomo pontos de interrupção em código de página da Web, bem sistema autônomo o código de controle.Você então chama a página da Web de Visual Studio.

Antes de iniciar a depuração do aplicativo de chamada, você geralmente desejará definir um ponto de interrupção na DLL.Quando o ponto de interrupção é alcançado, você pode depurar o código, observando a ação em cada linha, até que você isole o problema.Para obter mais informações, consulte Pontos de interrupção e Tracepoints e Visão geral de nível de código.

A janela Immediate

Você pode avaliar funções ou métodos na DLL sem ter um aplicativo de chamada.Fazer a depuração em time de design e você usar o Imediata janela.Para depurar dessa maneira, siga a siga estas etapas enquanto o projeto DLL está em aberto:

  1. Abra a janela Immediate do depurador.

  2. Para testar um método chamado Test na classe Class1, instancie um objeto do tipo Class1 digitando o seguinte código translation from VPE for Csharp 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 estar no escopo atual e no 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 janela Immediate.

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

       ?obj.Test(10);
    

    O ponto de interrupção será atingido e você poderá passar por Test. Após a execução deixou Test, o depurador estará novamente no modo de design.

Consulte também

Conceitos

Configurações de projeto para translation from VPE for Csharp depurar configurações

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

Segurança do Depurador

Referência

Configurações do projeto para uma depurar do C++

Outros recursos

Depurando código gerenciado

Preparação para depuração: O Visual C++ projeto Types

Preparação para depuração: Translation from VPE for Csharp e tipos de projeto do Visual Basic