title: Does android support the PTRACE_SINGLESTEP?
body: <p>OK, this is a simple question.Does android support the  PTRACE_SINGLESTEP when I use ptrace systemcall?  when I want to ptrace a android apk program, I find that I can't process the SINGLESTEP trace. But the situation changed when I use the PTRACE_SYSCALL, It can work perfectly. Does the android wipe out this function or arm lack some supports in hardware? Any help will be appreciated！thanks.</p>
  
  <p>this is my core program:</p>
  
  <pre><code>    int main(int argc, char *argv[])
     {   
      if(argc != 2) {
      __android_log_print(ANDROID_LOG_DEBUG,TAG,"please input the pid!");
        return -1;
      }
      if(0 != ptrace(PTRACE_ATTACH, target_pid, NULL, NULL))
     {
      __android_log_print(ANDROID_LOG_DEBUG,TAG,"ptrace attach error");
      return -1;
     }
      __android_log_print(ANDROID_LOG_DEBUG,TAG,"start  monitor process     :%d",target_pid);
      while(1)
      {
      wait(&amp;status);
      if(WIFEXITED(status))
      {
          break;
      }
  if (ptrace(PTRACE_SINGLESTEP, target_pid, 0, 0) != 0)
  __android_log_print(ANDROID_LOG_DEBUG,TAG,"PTRACE_SINGLESTEP attach error");
      }
  ptrace(PTRACE_DETACH, target_pid, NULL, NULL);
  __android_log_print(ANDROID_LOG_DEBUG,TAG,"monitor finished");   
  return 0; 
      }
  </code></pre>
  
  <p>I run this program on shell. And I can get the root privilege. 
    If I change the request to PTRACE_SYSCALL the program will run normally.
    But if the request is PTRACE_SINGLESTEP, the program will get an error!</p>