dasfex
我正在使用-fsanitize=leak
并且-fsanitize=address
在我的项目中。我以为泄漏会发现内存泄漏(不删除内存),而地址会发现扭曲内存访问。但是地址也说明了未删除的内存。那么,出于什么目的-fsanitize=leak
呢?
尼科尔·波拉斯(Nicol Bolas)
为了找到内存泄漏,该工具需要查看分配内存的所有位置,对其进行标记,跟踪它们的删除时间,并查看程序末尾是否有未删除的内容。
为了找到写访问冲突的内存,该工具(除其他事项外)需要查看您分配内存的所有位置,标记它们,并跟踪它们的删除时间。这是必要的,因为它将使分配更大,以便可以在它们周围设置防护措施,以检测何时进行野写。
因此,基本上,跟踪内存泄漏所需的信息中有90%可用于解决清理问题。因此,它也可能会跟踪这些信息。
您不使用地址清理器只是为了查找内存泄漏的原因是它还会处理其他许多事情。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句