我想要一些诊断 use-after-free 漏洞和未初始化漏洞的工具。我正在考虑使用 Sanitizer(内存和/或地址)和 Valgrind。但我对它们的优缺点知之甚少。有人能告诉我 Sanitizer 和 Valgrind 的主要特点、区别以及优缺点吗?
编辑:我找到了一些比较,例如:Valgrind 使用动态二进制插装(DBI),而 Sanitizer 使用编译时插装(CTI)。Valgrind 会使程序变得非常慢(20倍),而 Sanitizer 运行速度比 Valgrind 快得多(2倍)。如果有人可以给我更多需要考虑的重要因素,那将是一个很大的帮助。