使用 gcc 的地址清理器在 Ubuntu 17.10 docker 容器上失败



在 Ubuntu 17.10 docker 容器上执行使用 gcc 7.2.0 + ASan 编译的二进制文件失败,并显示以下错误:

==5==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)

LSan(执行泄漏检查(通过ptrace附加到被测程序。它在 docker 下无法执行此操作,因为它没有权限。这可以通过使用以下两个选项之一以特权运行 docker 容器来解决:

docker run ....   --privileged

或更具体:

docker run ....   --cap-add SYS_PTRACE

对于 CI 和自动化来说,--cap-add SYS_PTRACE 是更受欢迎的选项,因为它将权限限制为仅ptrace

相关内容

  • 没有找到相关文章

最新更新