Alterações de código suportadas (C#)
This topic applies to:
Edition |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro, Premium e Ultimate |
Edit and Continue lida com a maioria dos tipos de alterações de código dentro de corpos de método. A maioria das alterações fora corpos de método e algumas alterações dentro de corpos de método não podem ser aplicadas durante a depuração, no entanto. Para aplicar essas alterações sem suporte, você deve parar a depuração e reiniciar com uma versão nova do código.
As seguintes alterações não podem ser aplicadas ao código de C# durante uma sessão de depuração:
Altera a instrução atual ou qualquer instrução ativa.
Active statements incluem quaisquer declarações em funções na pilha de chamadas, que foram chamadas para ir para a instrução atual.
A instrução atual é marcada por um plano de fundo amarelo na janela de origem. Outros active statements são marcados por um plano de fundo sombreado e são somente leitura. Essas cores padrão podem ser alteradas na Opções caixa de diálogo.
Símbolos globais, incluindo as seguintes alterações:
Adicionando novos tipos.
Adicionando métodos para um tipo.
Alterando a assinatura de um tipo.
Adicionando campos, eventos ou propriedades para um tipo.
A edição de um método anônimo ou qualquer método que contém um método anônimo. Esses métodos são marcados por um plano de fundo sombreado.
Adicionando um novo método anônimo.
Adicionando, removendo ou alterando atributos.
Adicionar, remover ou alterar using diretivas.
A remoção ou alteração de variáveis locais. É permitido adicionar variáveis locais.
Adicionando um foreach, using, ou lock em torno da instrução ativa.
Modificando um método que contém um yield return ou yield break instrução.
Alterando um construtor com um campo que é inicializado por um método anônimo.
Código inseguro
Alterações no código inseguro têm as mesmas limitações que alterações no código seguro, com uma restrição adicional:
- Edição e continuação não oferece suporte a alterações de código não seguro, sai dentro de um método que contém o operador stackalloc. Isso se aplica somente aos métodos ativa. Quando você está depurando, qualquer função no momento na pilha de chamadas é um ativo.
Exceptions
Edit and Continue oferece suporte a alterações para catch, finally,e try blocos, com algumas exceções para blocos de active métodos, como métodos que estão atualmente na pilha de chamada.
Em uma função ativa que é a função mais recente na pilha de chamadas, a opção Edit and Continue não dá suporte:
Adicionando um catch ou finallyem torno da instrução ativa.
Adicionando manipuladores de exceção aninhados com mais de seis níveis de aninhamento.
Em uma função ativa que não é a função mais recente na pilha de chamadas, a opção Edit and Continue não dá suporte:
Adicionando um catch, finally ou tryem torno da instrução ativa.
Adicionando manipuladores de exceção aninhados com mais de seis níveis de aninhamento.
Alterar o código dentro de um trybloco que contém a instrução ativa.
Unsupported Scenarios
Edit and Continue is not available in the following debugging scenarios:
Depurar o código do LINQ. For more information, see Editar e continuar com o LINQ.
Mixed-mode (native/managed) debugging.
SQL debugging.
Depuração um Dr. Despejo do Watson.
Editing code after an unhandled exception, when the "Unwind the call stack on unhandled exceptions" option is not selected.
Debugging an embedded runtime application.
Depurando um aplicativo que tenha Attach to em vez de executar o aplicativo, escolhendo Iniciar da Debug menu.
Debugging optimized code.
Debugging managed code when the target is a 64-bit application. If you want to use Edit and Continue, you must set the target to x86. (Projeto propriedades, compilar guia, Advanced Compiler configuração.)
Após falha de uma nova versão ao construir devido a erros de compilação de depuração de uma versão antiga do seu código.
Consulte também
Tarefas
Referência
Edição e continuação (Visual C#)