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:
Abra a janela Immediate do depurador.
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.
Supondo que Test tem um int parâmetro, avaliar Test usando o Imediata janela:
?obj.Test(10)
O resultado será impresso na janela Immediate.
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
Referência
Configurações do projeto para uma depurar do C++
Outros recursos
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