Depuração de projetos DLL
This topic applies to:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium e Ultimate |
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:
Open the Debugger Immediate window.
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.
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.
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
Outros recursos
Preparação para depuração: Tipos de projeto C++ Visual
Preparação para depuração: C#, F# e tipos de projeto de Visual Basic