码迷,mamicode.com
首页 > 系统相关 > 详细

被Ptrace或暂停的进程状态

时间:2016-07-12 15:26:17      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

T(task_stopped or task_traced):暂停状态或跟踪状态

       向进程发送一个sigstop信号,它就会因响应该信号而进入task_stopped状态(除非该进程本身处于task_uninterruptible状态而不响应信号)。(sigstop与sigkill信号一样,是非常强制的。不允许用户进程通过signal系列的系统调用重新设置对应的信号处理函数。)
       向进程发送一个sigcont信号,可以让其从task_stopped状态恢复到task_running状态。

       当进程正在被跟踪时,它处于task_traced这个特殊的状态。“正在被跟踪”指的是进程暂停下来,等待跟踪它的进程对它进行操作。比如在gdb中对被跟踪的进程下一个断点,进程在断点处停下来的时候就处于task_traced状态。而在其他时候,被跟踪的进程还是处于前面提到的那些状态。   

       对于进程本身来说,task_stopped和task_traced状态很类似,都是表示进程暂停下来。
       而task_traced状态相当于在task_stopped之上多了一层保护,处于task_traced状态的进程不能响应sigcont信号而被唤醒。只能等到调试进程通过ptrace系统调用执行ptrace_cont、ptrace_detach等操作(通过ptrace系统调用的参数指定操作),或调试进程退出,被调试的进程才能恢复task_running状态。

 

表现在/proc/<pid>/status 的Strate: 标志上

被Ptrace或暂停的进程状态

标签:

原文地址:http://www.cnblogs.com/kiiim/p/5663493.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!