DebuggableAttribute.DebuggingModes Enumeração
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Especifica o modo de depuração para o compilador JIT (just-in-time).
Essa enumeração dá suporte a uma combinação bit a bit dos valores de membro.
public: enum class DebuggableAttribute::DebuggingModes
[System.Flags]
public enum DebuggableAttribute.DebuggingModes
[System.Flags]
[System.Runtime.InteropServices.ComVisible(true)]
public enum DebuggableAttribute.DebuggingModes
[<System.Flags>]
type DebuggableAttribute.DebuggingModes =
[<System.Flags>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type DebuggableAttribute.DebuggingModes =
Public Enum DebuggableAttribute.DebuggingModes
- Herança
- Atributos
Campos
Default | 1 | Instrui o compilador JIT (just-in-time) a usar seu comportamento padrão, que inclui habilitar as otimizações, desabilitar o suporte a Editar e Continuar e usar os pontos de sequência do repositório de símbolos se estiver presente. A partir do .NET Framework versão 2.0, as informações de acompanhamento JIT, o deslocamento do MSIL (Microsoft Intermediate Language) para o deslocamento de código nativo em um método, são sempre gerados. |
DisableOptimizations | 256 | Desabilita as otimizações executadas pelo compilador para tornar o arquivo de saída menor, mais rápido e mais eficiente. As otimizações resultam na reorganização de código no arquivo de saída, o que pode dificultar a depuração. Normalmente, a otimização deve ser desabilitada durante a depuração. Nas versões 2.0 ou posteriores, combine esse valor com Default (Default | DisableOptimizations) para habilitar o acompanhamento JIT e desabilitar as otimizações. |
EnableEditAndContinue | 4 | Habilita o recurso Editar e continuar. O recurso Editar e continuar permite que você faça alterações em seu código-fonte enquanto o programa está no modo de interrupção. A capacidade de editar e continuar depende do compilador. |
IgnoreSymbolStoreSequencePoints | 2 | Use os pontos de sequência de MSIL implícitos, não os pontos de sequência de PDB (banco de dados do programa). As informações simbólicas normalmente incluem pelo menos um deslocamento do MSIL (Microsoft Intermediate Language) para cada linha de origem. Quando o compilador JIT (just-in-time) está prestes a compilar um método, ele solicita aos serviços de criação de perfil uma lista de deslocamentos do MSIL que devem ser preservados. Esses deslocamentos do MSIL são chamados de pontos de sequência. |
None | 0 | A partir do .NET Framework versão 2.0, as informações de acompanhamento JIT são sempre geradas e esse sinalizador tem o mesmo efeito que Default, exceto que ele define a propriedade IsJITTrackingEnabled como Observe que, diferente do sinalizador DisableOptimizations, o sinalizador None não pode ser usado para desabilitar as otimizações JIT. |
Comentários
A DebuggableAttribute.DebuggingModes enumeração especifica como o runtime deve acompanhar informações importantes para o depurador durante a geração de código. Essas informações ajudam o depurador a fornecer uma experiência avançada de depuração. Ao contrário do .NET Framework versão 1.1, as versões 2.0 ou posteriores não permitem desativar o acompanhamento pelo compilador JIT (Just-In-Time). O rastreamento JIT está sempre habilitado para arquivos depuráveis. Na versão 2.0 e posterior, os valores de enumeração têm o seguinte efeito.
Modo de depuração | Resultado |
---|---|
Nenhum | Acompanhamento, otimizações JIT habilitadas |
Padrão | Acompanhamento, otimizações JIT habilitadas |
DisableOptimizations | Acompanhamento, otimizações JIT habilitadas |
Padrão | DisableOptimizations | Acompanhamento, otimizações JIT desabilitadas |
Os pontos de sequência são usados para indicar locais no código msil (microsoft intermediate language) que um usuário depurador espera ser capaz de se referir exclusivamente, como para definir um ponto de interrupção. O compilador JIT garante que ele não compile o MSIL em dois pontos de sequência diferentes em uma única instrução nativa. Por padrão, o compilador JIT examina o repositório de símbolos no arquivo de banco de dados do programa (PDB) para obter uma lista de pontos de sequência adicionais. No entanto, carregar o arquivo PDB requer que o arquivo esteja disponível e tenha um impacto negativo no desempenho. A partir da versão 2.0, os compiladores podem emitir "pontos de sequência implícitos" no fluxo de código MSIL por meio do uso de instruções MSIL "nop"
. Esses compiladores devem definir o IgnoreSymbolStoreSequencePoints
sinalizador para notificar o Common Language Runtime para não carregar o arquivo PDB.
Observação
Essa enumeração é usada principalmente por desenvolvedores de linguagem. Geralmente, ele não é usado no desenvolvimento de aplicativos. Os ambientes de desenvolvimento usam DebuggableAttribute.DebuggingModes com base em parâmetros do compilador, como /debug e /optimize.