使用ASAN仅编译代码子集的结果是什么?

时间:2018-02-09 17:37:10

标签: debugging gcc address-sanitizer

我在Linux上使用地址清理程序进行大部分开发(通过gcc)。

我通常只通过地址清理工具检测我自己的代码。因此,我的流程包含各种检测库和非检测库(第三方,其他部门的代码)。

这样做有什么后果? ASAN能正常运行吗?

1 个答案:

答案 0 :(得分:0)

Asan在应用于应用程序子集时将正常运行,但在这种情况下可能无法检测到一些错误("我是否还需要构建共享库?"和"我可以使用未经授权的可执行文件运行吗?" Asan FAQ中的问题。)

例如,将无法检测到在应用程序的未经过处理的部分中定义的堆栈/全局缓冲区溢出(因为不会检测此缓冲区的影子内存)。同样,未检测到未经过清理的部分中的任何溢出(因为没有检测它的检测代码)。