Moh*_*zim 2 gcc docker address-sanitizer ubuntu-17.10
在 Ubuntu 17.10 docker 容器上执行用gcc 7.2.0+编译的二进制文件ASan失败,并出现以下错误:
==5==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)
Run Code Online (Sandbox Code Playgroud)
LSan(执行泄漏检查)通过ptrace. 它在 docker 下无法这样做,因为它没有权限。这可以通过使用以下两个选项之一以特权运行 docker 容器来解决:
docker run .... --privileged
Run Code Online (Sandbox Code Playgroud)
或更具体的:
docker run .... --cap-add SYS_PTRACE
Run Code Online (Sandbox Code Playgroud)
--cap-add SYS_PTRACE是 CI 和自动化的首选选项,因为它将权限限制为ptrace仅。