3

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

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

1 回答 1

7

LSan(执行泄漏检查)通过ptrace. 它在 docker 下无法这样做,因为它没有权限。这可以通过使用以下两个选项之一运行具有特权的 docker 容器来解决:

docker run ....   --privileged

或更具体:

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

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

于 2018-04-09T14:54:53.220 回答