我正在尝试使用 PTRACE_TRACEME 来跟踪子进程:
if (ptrace(PTRACE_TRACEME, 0, NULL, NULL) == -1) {
perror("ptrace_traceme");
exit(EXIT_FAILURE);
}
我得到了错误:
ptrace_traceme: Operation not permitted
据我了解,该问题的原因是安全功能。
我尝试将 - 更改kernel.yama.ptrace_scope = 1
为:kernel.yama.ptrace_scope = 0
。
我还检查了 SELinux 是否已禁用。关于 strace,我看到 strace 可以解决这个问题,但我不明白如何解决,有些问题:strace -f ./program_name
。
此外,我以 root 身份运行该程序,但问题仍然没有解决,我开始认为该问题与安全功能无关。
顺便说一句,我正在使用 Ubuntu 22.04。
谢谢你的帮助!