Android поддерживает PTRACE_SINGLESTEP?

Хорошо, это простой вопрос. Поддерживает ли Android PTRACE_SINGLESTEP, когда я использую системный вызов ptrace? Когда я хочу получить программу Android apk, я обнаруживаю, что не могу обработать трассировку SINGLESTEP. Но ситуация изменилась, когда я использую PTRACE_SYSCALL, он может работать отлично. Андроид уничтожает эту функцию, или на руке нет аппаратной поддержки? Любая помощь будет оценена, спасибо.

это моя основная программа:

    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(&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; 
    }

Я запускаю эту программу на оболочке. И я могу получить привилегию root. Если я изменю запрос на PTRACE_SYSCALL, программа будет работать нормально. Но если запрос PTRACE_SINGLESTEP, программа получит ошибку!

1 ответ

PTRACE_SINGLESTEP был удален в ARM Linux, проверьте это

Другие вопросы по тегам