我有几个版本的项目结帐和编译。如果我发现错误,我会比较版本以缩小问题范围。有时我会启用像 AddressSanitizer 这样的消毒剂。如果我重新使用一个可执行文件,我不记得它是否是用消毒剂编译的。如果可执行文件工作正常,我不确定该错误是否不存在,或者我是否没有在此版本中包含消毒剂。所以我必须重新配置和重建以确保我有消毒剂。
有没有办法检查可执行文件是否已使用消毒剂编译?
Per*_*sta 13
Address sanitizer 也可以使用-static-libasanGCC 中的选项进行静态编译。静态编译地址清理器是 Clang 中的默认模式。
如果您静态编译地址清理程序,那么显然无法ldd用于验证您的二进制文件是否已清理。在这种情况下,我使用nm并检查二进制文件中是否有消毒剂符号:
nm -an <executable> | grep asan
| 归档时间: |
|
| 查看次数: |
3833 次 |
| 最近记录: |