Partilhar via


Depuração de projetos DLL

This topic applies to:

Edition

Visual Basic

C#

F#

C++

Web Developer

Express

O tópico é aplicável O tópico é aplicável O tópico é aplicável O tópico é aplicável O tópico não é aplicável

Pro, Premium e Ultimate

O tópico é aplicável

O tópico é aplicável

O tópico é aplicável

O tópico é aplicável

O tópico não é aplicável

The following templates create DLLs:

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

  • (C++, C# e Visual Basic): Windows Forms Control Library

    Debugging a Windows Control Library is similar to debugging a Class Library project. In most cases, you will call the Windows control from another project. When you debug the calling project, you can step into the code of your Windows control, set breakpoints, and perform other debugging operations. For more information, see Windows Forms Controls.

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

    For more information, see Web Control Library (Código Gerenciado).

  • (C++): Controle de ActiveX do MFC e o MFC Smart Device Control de ActiveX

    Controles de ActiveX 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 é possível executar como autônomos, mas deve ser incorporados em uma página da Web em HTML. For more information, see Como: Depurar um controle ActiveX.

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

    For more information, see Técnicas de depuração MFC.

This section also contains information about the following topics:

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

  • Building a Debug Version

  • Mixed-Mode Debugging

  • Changing Default Configurations

  • Ways to Debug the DLL

  • O aplicativo de chamada

  • Controls on a Web Page

  • The Immediate Window

Building a Debug Version

No matter how you start debugging, make sure that you build the Debug version of the DLL first and make sure that the Debug version is in the location where the application expects to find it. Isso pode parecer óbvio, mas se você esquecer essa etapa, o aplicativo pode localizar uma versão diferente da DLL e carregá-lo. The program will then continue to run, while you wonder why your breakpoint was never hit. Quando você está depurando, você pode verificar quais DLLs seu programa carregou abrindo o depurador módulos janela. The Modules window lists each DLL or EXE loaded in the process you are debugging. For more information, see Como: Use a janela Modules.

Para o depurador anexar a códigos escritos em C++, o código deve emitir DebuggableAttribute. You can add this to your code automatically by linking with the /ASSEMBLYDEBUG linker option.

Mixed-Mode Debugging

The calling application that calls your DLL can be written in managed code or native code. Se a DLL gerenciada é chamada pelo código nativo e você deseja depurar ambos, gerenciado e nativos depuradores devem estar habilitados. Você pode selecionar isso o <Project> Páginas de propriedade caixa de diálogo ou janela. How you do this depends on whether you start debugging from the DLL project or the calling application project. For more information, see Como: Debug in Mixed Mode.

Changing Default Configurations

Quando você cria um projeto de aplicativo de console com o modelo de projeto, Visual Studio cria automaticamente as configurações necessárias para configurações Debug e Release. If necessary, you can change those settings. For more information, see 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ções do projeto para uma configuração de depuração no Visual Basic, and Como: Set Debug and Release Configurations.

Ways to Debug the DLL

Each of the projects in this section creates a DLL. Não é possível executar uma DLL diretamente; ele deve ser chamado por um aplicativo, geralmente um EXE. For more information, see Criar e gerenciar projetos 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 por meio de uma URL.

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

Debugging the Calling Application

To debug a DLL, start by debugging the calling application, typically either an EXE or a Web application. There are several ways to debug it.

  • If you have a project for the calling application, you can open that project and start execution from the Debug menu. For more information, see 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á em execução, você pode anexar a ele. Use this method if the DLL is a control hosted by Internet Explorer, or a control on a Web page. For more information, see Como: Anexar a um processo em execução.

  • You can debug it from the DLL project. For more information, see Como: Depuração de um projeto DLL.

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

Before you start debugging the calling application, you will usually want to set a breakpoint in the class library. For more information, see Breakpoints and Tracepoints. When the breakpoint is hit, you can step through the code, observing the action at each line, until you isolate the problem. For more information, see Visão geral de revisão de código..

Controls on a Web Page

Para depurar um controle de página da Web, crie um ASP.NET página incorpore, se essa página já existe. 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.

Before you start debugging the calling application, you will usually want to set a breakpoint in the DLL. When the breakpoint is hit, you can step through the code, observing the action at each line, until you isolate the problem. For more information, see Breakpoints and Tracepoints and Visão geral de revisão de código..

The Immediate Window

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. Para depurar dessa maneira, faça a siga estas etapas enquanto o projeto DLL está aberto:

  1. Open the Debugger Immediate window.

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

        Class1 obj = new Class1();
    

    In C#, all names must be fully qualified. In addition, any methods or variables must be in the current scope and context of the debugging session.

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

       ?obj.Test(10)
    

    The result will be printed in the Immediate window.

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

       ?obj.Test(10);
    

    O ponto de interrupção será atingido e você será capaz de 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ções do projeto para uma configuração de depuração no 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