【发布时间】:2012-11-02 02:32:16
【问题描述】:
我必须通过知道线程的 tid 来知道线程当前是否正在执行系统调用(例如读/写/等)。有没有办法在 Linux 中做到这一点?
【问题讨论】:
标签: linux multithreading posix system-calls
我必须通过知道线程的 tid 来知道线程当前是否正在执行系统调用(例如读/写/等)。有没有办法在 Linux 中做到这一点?
【问题讨论】:
标签: linux multithreading posix system-calls
这应该列出线程的状态码
ps -p<pid> -o stat
两个相关的代码是:
D uninterruptible sleep (usually IO)
S interruptible sleep (waiting for an event to complete)
编辑:
如果您想以编程方式获得确切的系统调用,您可以按照您的建议使用ptrace 并阅读EAX,您还应该使用PTRACE_SYSCALL 标志让进程在下一个系统调用条目处停止。
【讨论】:
strace(1) 实用程序。