Compartilhar via


Depuração em tempo de design no Visual Studio (C#, C++/CLI, Visual Basic, F#)

Para depurar o código em tempo de design em vez de enquanto um aplicativo está em execução, você pode usar a janela Imediata .

Para depurar o código XAML por trás de um aplicativo a partir do designer XAML, como cenários declarativos de associação de dados, você pode usar Depurar>anexar ao processo.

Usar a janela Imediata

Você pode usar a janela Imediato do Visual Studio para executar uma função ou sub-rotina sem executar seu aplicativo. Se a função ou a subrotina contiver um ponto de interrupção, o Visual Studio vai parar no ponto de interrupção. Em seguida, você pode usar as janelas do depurador para examinar o estado do programa. Esse recurso é chamado depuração durante a fase de design. Para obter informações detalhadas, consulte Usar a janela Imediata

O exemplo a seguir está no Visual Basic. Você também pode usar a janela Imediata no momento do design em aplicativos C#, F# e C++/CLI. Para C++/CLI, compile sem a opção /clr para usar a janela Imediata.

  1. Cole o seguinte código em um aplicativo de console do Visual Basic em branco:

    Module Module1
    
        Sub Main()
            MySub()
        End Sub
    
        Function MyFunction() As Decimal
            Static i As Integer
            i = i + 1
            Return i
        End Function
    
        Sub MySub()
            MyFunction()
    
        End Sub
    End Module
    
  2. Defina um ponto de interrupção na linha End Function.

  3. Abra a janela Imediata selecionando Depurar>Windows>Imediata. Digite ?MyFunction na janela e pressione Enter.

    O ponto de interrupção é atingido e o valor de MyFunction na janela Locais é 1. Você pode examinar a pilha de chamadas e outras janelas de depuração enquanto o aplicativo está no modo de pausa.

  4. Selecione Continuar na barra de ferramentas do Visual Studio. O aplicativo termina e 1 é retornado na janela Imediata . Verifique se você ainda está no modo de design.

  5. Digite ?MyFunction na janela Imediata novamente e pressione Enter. O ponto de interrupção é atingido e o valor de MyFunction na janela Locais é 2.

  6. Sem selecionar Continuar, digite ?MySub() na janela Imediato e pressione Enter. O ponto de interrupção é atingido e o valor de MyFunction na janela Locais é 3. Você pode examinar o estado do aplicativo enquanto o aplicativo está no modo de interrupção.

  7. Selecione Continuar. O ponto de interrupção é atingido novamente e o valor de MyFunction na janela Locais agora é 2. A janela Imediata retorna Expressão foi avaliada e não tem valor.

  8. Selecione Continuar novamente. O aplicativo termina e 2 é retornado na janela Imediata . Verifique se você ainda está no modo de design.

  9. Para limpar o conteúdo da janela Imediata , clique com o botão direito do mouse na janela e selecione Limpar Tudo.

Depurar um controle XAML personalizado no tempo de design conectando ao designer XAML

  1. Abra sua solução ou projeto no Visual Studio.

  2. Crie a solução/projeto.

  3. Abra a página XAML que contém o controle personalizado que você deseja depurar.

    Para projetos UWP direcionados ao Windows build 16299 ou superior, esta etapa iniciará o processo deUwpSurface.exe . Para projetos do WPF direcionados ao Windows build 16299 ou superior, esta etapa iniciará o processo deWpfSurface.exe . Para versões do WPF ou UWP anteriores à compilação 16299 do Windows, esta etapa iniciará o processo XDesProc.exe.

  4. Abra uma segunda instância do Visual Studio. Não abra uma solução ou projeto na segunda instância.

  5. Na segunda instância do Visual Studio, abra o menu Depurar e escolha Anexar ao Processo....

  6. Dependendo do tipo de projeto (consulte as etapas anteriores), selecione o processoUwpSurface.exe, WpfSurface.exeou XDesProc.exe na lista de processos disponíveis.

  7. No campo Anexar ao do diálogo Anexar ao Processo, escolha o tipo de código correto para o controle personalizado que você deseja depurar.

    Se o controle personalizado tiver sido escrito em uma linguagem .NET, escolha o tipo de código .NET apropriado, como Gerenciado (CoreCLR). Se o controle personalizado tiver sido escrito em C++, escolha Nativo.

  8. Anexe a segunda instância do Visual Studio clicando no botão Anexar .

  9. Na segunda instância do Visual Studio, abra os arquivos de código associados ao controle personalizado que você deseja depurar. Certifique-se de apenas abrir os arquivos, não toda a solução ou projeto.

  10. Coloque os pontos de interrupção necessários nos arquivos abertos anteriormente.

  11. Na primeira instância do Visual Studio, feche a página XAML que contém o controle personalizado que você deseja depurar (a mesma página que você abriu nas etapas anteriores).

  12. Na primeira instância do Visual Studio, abra a página XAML que você fechou na etapa anterior. Isso fará com que o depurador pare no primeiro ponto de interrupção definido na segunda instância do Visual Studio.

  13. Depure o código na segunda instância do Visual Studio.