Depurar 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 o aplicativo está em execução, você pode usar a janela Imediata.
Para depurar o código XAML por trás de um aplicativo do designer XAML, como cenários de associação de dados declarativos, você pode usar Depuração>Anexar ao Processo.
Usar a janela Imediata
Você pode usar a janela Imediata do Visual Studio para executar uma função ou sub-rotina sem executar seu aplicativo. Se a função ou a sub-rotina contiverem um ponto de interrupção, o Visual Studio interromperá a execução no ponto apropriado. Então, você poderá usar o depurador do Windows para examinar o estado do programa. Esse recurso é chamado de depuração em tempo de design.
O exemplo a seguir está no Visual Basic. Você também pode usar a janela Imediata em tempo de design em C#, F# e aplicativos C++/CLI. Em C++/CLI, faça a compilação sem a opção /clr para usar a janela Imediata.
Cole o seguinte código em um aplicativo em branco do console do Visual Basic:
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
Defina um ponto de interrupção na linha Função End.
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 interrupção.
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.
Digite
?MyFunction
na janela Imediata novamente e pressione Enter. O ponto de interrupção é atingido e o valor de MyFunction na janela Locais é 2.Sem selecionar Continuar, digite
?MySub()
na janela Imediata 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.Selecione Continuar. O ponto de interrupção é atingido e o valor de MyFunction na janela Locais agora é 2. A janela Imediata retorna A expressão foi avaliada e não possui nenhum valor.
Selecione Continuar novamente. O aplicativo termina e 2 é retornado na janela Imediata. Verifique se você ainda está no modo de design.
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 em tempo de design anexando ao designer XAML
Abra sua solução ou projeto no Visual Studio.
Crie a solução/projeto.
Abra a página XAML que contém o controle personalizado que você deseja depurar.
Nos projetos UWP direcionados á build 16299 do Windows ou superior, essa etapa iniciará o processo UwpSurface.exe. Nos projetos UWP direcionados á build 16299 do Windows ou superior, essa etapa iniciará o processo UwpSurface.exe. Nas versões WPF ou UWP anteriores á build 16299 do Windows, esta etapa iniciará o processo XDesProc.exe.
Abra uma segunda instância do Visual Studio. Não abra uma solução ou projeto na segunda instância.
Na segunda instância do Visual Studio, abra o menu Depurar e escolha Anexar ao Processo....
Dependendo do tipo de seu projeto (consulte as etapas anteriores), selecione o processo UwpSurface.exe, WpfSurface.exeou XDesProc.exe na lista de processos disponíveis.
No campo Anexar ao da caixa de diálogo Anexar ao Processo, escolha o tipo de código correto para o controle personalizado que você deseja depurar.
Se seu controle personalizado tiver sido escrito em uma linguagem .NET, escolha o tipo de código .NET apropriado, como o Gerenciado (CoreCLR). Se o controle personalizado tiver sido escrito em C++, escolha Nativo.
Anexe a segunda instância do Visual Studio clicando no botão Anexar.
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.
Coloque os pontos de interrupção necessários nos arquivos abertos anteriormente.
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).
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.
Depure o código na segunda instância do Visual Studio.