我想要一些工具来诊断释放后使用错误和未初始化错误。我正在考虑 Sanitizer(内存和/或地址)和 Valgrind。但我对它们的优点和缺点知之甚少。谁能告诉我 Sanitizer 和 Valgrind 的主要特点、区别和优缺点吗?
编辑:我发现了一些比较,例如:Valgrind 使用 DBI(动态二进制检测)而 Sanitizer 使用 CTI(编译时检测)。无论 Sanitizer 的运行速度是否比 Valgrind 快得多(2 倍),Valgrind 都会使程序变慢(20 倍)。如果有人能给我一些更重要的考虑点,这将是一个很大的帮助。
我想你会发现这个wiki很有用。
TLDR 消毒剂的主要优点是
缺点是