title: how to find out why the process is sleeping/blocked in linux
body: <p>friends:</p>
  
  <p>some time we found our program run abnormally, that is, it is not crashed, but did not running as we expected, it is SLEEPING!</p>
  
  <p>then, i want to find out why it is SLEEPING, such as, some socket reading blocked? some signal waiting blocked? or other things occurred to block this process. </p>
  
  <p>HOW to DO? i find the ps or the /proc/pid/stats only can indicate its states and its signal mask. BUT i want to know more detail, which socket,signal or other things blocked it?</p>
  
  <p>anyone can give some help information?</p>
  
  <p>it is in linux/android, the process is common process, native or java process.</p>
  
  <p>thx a lot in advance</p>