Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我必须通过知道它的 tid 来知道一个线程当前是否正在执行系统调用(例如读/写/等)。有没有办法在 Linux 中做到这一点?
这应该列出线程的状态代码
ps -p<pid> -o stat
两个相关的代码是:
D uninterruptible sleep (usually IO) S interruptible sleep (waiting for an event to complete)
编辑:如果您想以编程方式获取确切的系统调用,您可以ptrace按照您的建议和阅读EAX使用,您还应该使用PTRACE_SYSCALL标志让进程在下一个系统调用条目处停止。
ptrace
EAX
PTRACE_SYSCALL