Valgrind可以检测到对堆栈变量的无效读取

问题描述 投票:0回答:1

我编写了一个小代码来验证Valgrind是否能够检测到某些无效读取,看起来好像没有检测到。可以做到吗?

int a[2];
printf("test %d", a[100]);

如果交换要动态分配的数组,则Valgrind可以正常工作。 (大小为4的无效读取)

valgrind
1个回答
0
投票

valgrind --tool = memcheck(默认工具)未检测到此类问题。

有一个实验工具valgrind --tool = exp-sgcheck目的是检测此类错误,但从未成功正确,该工具很可能会从valgrind发行版中删除。

据我所知,gcc / clang清理程序是用于检测此类错误的技术。

© www.soinside.com 2019 - 2024. All rights reserved.