Valgrind不会检测缓冲区溢出

#include  main() { char buf[8]; sprintf(buf,"AAAA%3s","XXssssssssXXXsssssXXX"); printf("%s\n",buf); } 

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

来自Valgrind教程

什么valgrind不是

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