DebuggableAttribute.DebuggingModes Enumeração
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Especifica o modo de depuração para o compilador just-in-time (JIT).
Esta enumeração suporta uma combinação bit-a-bit dos respetivos valores 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
| Name | Valor | Description |
|---|---|---|
| None | 0 | A partir da versão 2.0 do .NET Framework, a informação de rastreio JIT é sempre gerada, e esta flag tem o mesmo efeito que Default, exceto que define a propriedade IsJITTrackingEnabled para Note-se que, ao contrário da DisableOptimizations flag, a None flag não pode ser usada para desativar otimizações JIT. |
| Default | 1 | Instrui o compilador just-in-time (JIT) a usar o seu comportamento padrão, que inclui ativar otimizações, desativar o suporte para Editar e Continuar, e usar pontos de sequência de armazenamento de símbolos, caso estejam presentes. A partir do .NET Framework versão 2.0, a informação de rastreamento JIT, a linguagem intermédia Microsoft (MSIL) deslocada para o deslocamento de código nativo dentro de um método, é sempre gerada. |
| IgnoreSymbolStoreSequencePoints | 2 | Use os pontos implícitos de sequência MSIL, não os pontos de sequência da base de dados de programas (PDB). A informação simbólica normalmente inclui pelo menos um deslocamento Microsoft intermediate language (MSIL) para cada linha de origem. Quando o compilador just-in-time (JIT) está prestes a compilar um método, pede aos serviços de perfilagem uma lista de deslocamentos MSIL que devem ser preservados. Estes deslocamentos MSIL são chamados pontos de sequência. |
| EnableEditAndContinue | 4 | Ativar a edição e continuar. Editar e continuar permite-te fazer alterações ao teu código-fonte enquanto o programa está em modo de pausa. A capacidade de editar e continuar depende do compilador. |
| DisableOptimizations | 256 | Desative as otimizações realizadas pelo compilador para tornar o seu ficheiro de saída mais pequeno, rápido e eficiente. As otimizações resultam numa reorganização do código no ficheiro de saída, o que pode dificultar a depuração. Normalmente, a otimização deve estar desativada durante a depuração. Nas versões 2.0 ou posteriores, combine este valor com Default (Default | DisableOptimizations) para ativar o rastreamento JIT e desativar otimizações. |
Observações
A DebuggableAttribute.DebuggingModes enumeração especifica como o tempo de execução deve acompanhar informações importantes para o depurador durante a geração de código. Esta informação ajuda o depurador a proporcionar uma experiência de depuração enriquecida. Ao contrário do .NET Framework versão 1.1, as versões 2.0 ou posteriores não permitem desligar o rastreamento pelo compilador just-in-time (JIT). O rastreamento JIT está sempre ativado para ficheiros depuráveis. Na versão 2.0 e posteriores, os valores de enumeração têm o seguinte efeito.
| Modo de depuração | Result |
|---|---|
| None | Tracking ativado, otimizações JIT ativadas |
| Predefinido | Tracking ativado, otimizações JIT ativadas |
| DisableOptimizations | Tracking ativado, otimizações JIT ativadas |
| Padrão | DisableOptimizations | Tracking ativado, otimizações JIT desativadas |
Os pontos de sequência são usados para indicar locais no código da linguagem intermédia Microsoft (MSIL) que o utilizador do depurador espera poder consultar de forma única, como para definir um ponto de interrupção. O compilador JIT garante que não compila o MSIL em dois pontos de sequência diferentes numa única instrução nativa. Por defeito, o compilador JIT examina o armazenamento de símbolos no ficheiro da base de dados do programa (PDB) para uma lista de pontos de sequência adicionais. No entanto, carregar o ficheiro PDB requer que o ficheiro esteja disponível e tem 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 através do uso de instruções MSILnop" . Tais compiladores devem definir a IgnoreSymbolStoreSequencePoints flag para notificar o runtime da linguagem comum para não carregar o ficheiro PDB.
Note
Esta enumeração é usada principalmente por desenvolvedores de linguagem. Geralmente, não é utilizado no desenvolvimento de aplicações. Os ambientes de desenvolvimento utilizam-se DebuggableAttribute.DebuggingModes com base em parâmetros do compilador como /debug e /optimize.