/sdl (Habilitar verificações de segurança adicionais)
Adiciona verificações recomendada do Security Development Lifecycle (SDL). Essas verificações incluem segurança extra relevantes avisos como erros e recursos de geração de código seguro adicional.
/sdl[-]
Comentários
/sdl permite que um superconjunto das verificações de segurança da linha de base fornecidas pelo /GS e substituições /GS-. Por padrão, /sdl permanece desativado. /sdl- Desabilita as verificações de segurança adicionais.
Verificações de tempo de compilação
/sdl permite que esses avisos como erros:
Aviso habilitado por /sdl |
Opção de linha de comando equivalente |
Descrição |
---|---|---|
/we4146 |
Um operador unário menos operador foi aplicado a um tipo sem sinal, resultando em um resultado não assinado. |
|
/we4308 |
Uma constante de inteiro negativa é convertido em tipo sem sinal, resultando em um resultado possivelmente sem sentido. |
|
/we4532 |
Uso de continue, break ou goto palavras-chave em um __finally/finally bloco tem um comportamento indefinido durante o encerramento anormal. |
|
/we4533 |
Inicializando uma variável de código não será executado. |
|
/we4700 |
Uso de uma variável local não inicializada. |
|
/we4703 |
Uso de uma variável de ponteiro locais potencialmente não inicializado. |
|
/we4789 |
Buffer saturação quando funções específicas de tempo de execução (CRT) C são usadas. |
|
/we4995 |
Uso de uma função marcada com o pragma preterido. |
|
/we4996 |
Uso de uma função marcada como preterido. |
Verificações de tempo de execução
Quando /sdl estiver habilitado, o compilador gera código para executar essas verificações em tempo de execução:
Habilita o modo estrito de /GS detecção de estouro de buffer de tempo de execução, equivalente ao compilar com #pragma strict_gs_check(push, on).
Executa a limpeza de ponteiro limitado. Em expressões que não envolvem cancela a referência e tipos que não têm nenhum destruidor definido pelo usuário, as referências do ponteiro são definidas como um endereço inválido após uma chamada para delete. Isso ajuda a evitar a reutilização de referências do ponteiro obsoletos.
Executa a inicialização de membro de classe. Inicializa automaticamente todos os membros de classe como zero na instanciação de objetos (antes da execução do construtor). Isso ajuda a evitar o uso de dados não inicializados associados a membros de classe que o construtor não inicializar explicitamente.
Observações
Para obter mais informações, consulte avisos, /sdl e melhorando a detecção de variáveis não inicializada.
Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio
Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, consulte Como abrir páginas de propriedade do projeto.
Selecione a pasta C/C++.
Sobre o geral página, selecione a opção do verificações do SDL lista suspensa.