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