Valgrind不会检测缓冲区溢出

web*_*org 10 c valgrind buffer-overflow

#include <stdio.h>
main()
{     
    char buf[8];
    sprintf(buf,"AAAA%3s","XXssssssssXXXsssssXXX");
    printf("%s\n",buf);
}
Run Code Online (Sandbox Code Playgroud)

我希望valgrind能够使用上面的代码检测缓冲区溢出.但它不会报告任何错误或警告.我需要为此启用任何特殊标志吗?

Day*_*rai 14

来自Valgrind教程

什么valgrind不是

虽然valgrind是一个非常有用的程序,但它不会奇迹般地告诉你程序中的每个内存错误.您应该记住几个限制.它不会对堆栈/静态数组进行边界检查.