获得PTRACE_ATTACH的许可

时间:2017-11-26 20:17:47

标签: ptrace

我正在尝试编写一个程序来执行ptrace(PTRACE_ATTACH, pid, nullptr, nullptr)但它返回-1而errno是3(没有这样的过程)。 tracee正在运行并由我开始,所以我想跟踪器应该有权限。那我该怎么办?

ptrace似乎也是基于每个线程的。是否有简单的方法来获取给定进程ID的所有线程ID?唯一的方法是检查/proc/{pid}/task/{tid}?如何捕捉线程创建?

1 个答案:

答案 0 :(得分:0)

您可以使用ptrace(PTRACE_SETOPTIONS, pid, nullptr, PTRACE_O_TRACECLONE)捕获线程创建。我建议您仔细阅读man 2 ptrace

PTRACE_ATTACH可能由于多种原因而失败。尝试使用sudo以root身份运行您的流程。