Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Erro:
Endereço Sanitizer Error: allocation-size-too-big
Observações
Este exemplo mostra o erro encontrado quando uma alocação é muito grande para a pilha. Exemplo originado do conjunto de testes LLVM compiler-rt.
Exemplo
// example1.cpp
// allocation-size-too-big error
#include <stdio.h>
#include <malloc.h>
#include <memory.h>
int x = 1000;
int y = 1000;
__declspec(noinline) void bad_function() {
char* buffer = (char*)malloc(x * y * x * y); //Boom!
memcpy(buffer, buffer + 8, 8);
}
int main(int argc, char **argv) {
bad_function();
return 0;
}
Para criar e testar este exemplo, execute estes comandos em um prompt de comando do desenvolvedor do Visual Studio 2019 versão 16.9 ou posterior:
cl example1.cpp /fsanitize=address /Zi
devenv /debugexe example1.exe
Erro resultante
Ver também
Visão geral do AddressSanitizer
AddressSanitizer problemas conhecidos
de compilação e referência de linguagem AddressSanitizer
de referência de tempo de execução AddressSanitizer
AddressSanitizer shadow bytes
AddressSanitizer na nuvem ou de testes distribuídos
de integração do depurador AddressSanitizer
Exemplos de erro AddressSanitizer