我正在使用valgrind 3.12 for mips(mipsel)平台。我发现在以下示例中:
static char * return_stack_allocated_value(void)
{
char x[100];
snprintf(x,100,"Test test test");
return x;
}
int main()
{
char *bad;
bad = return_stack_allocated_value();
printf("Result: %s\n",bad);
}
valgrind不报告任何错误,尽管我们不能再使用指向坏的指针。
我使用以下选项运行valgrind
--10-- Valgrind options:
--10-- --main-stacksize=16777216
--10-- --malloc-fill=0xab
--10-- --free-fill=0x70
--10-- --leak-check=full
--10-- --leak-resolution=high
--10-- --num-callers=50
--10-- --trace-children=yes
--10-- --track-origins=yes
--10-- --log-file=/tmp/test_%p.log
有可能用valgrind发现这样的问题吗?应该使用哪些选项?