커널 (이 경우 Linux)에서 프로세스 컨텍스트 (시스템 호출, 페이지 오류 등)에서 PTRACE_SINGLESTEP로 ptrace_request를 호출하면 어떤 일이 발생하는지 궁금합니다. 사용자 공간 명령 또는 커널 공간 명령을 단일 단계로 실행합니까? 필자는 ptrace가 사용자의 지시 사항을 한 단계 씩 수행 할 수 있다는 것을 알고 있습니다. 이것이 왜 내가 생성 할 행동에 대해 궁금합니다.프로세스 컨텍스트에서 커널의 단일 단계를 수행 하시겠습니까?
조금 더 많은 정보를 제공하기 위해 페이지 폴트 처리기 (단일 단계에서 오류가 있지만 PTE를 변경하여 명령이 진행되도록)에서 시도하고 있습니다. 나는 이것이 심지어 가능할 지 아니면 프로세스를 다시 실행하는 것과 같이 다른 방법을 필요로하는지 궁금합니다.
이것은 프로세스의 task_struct (선점 된 경우)가 실행되기 때문에 발생합니다. 여전히 커널 공간 처리기 IIRC를 가리킬 것이므로 ptrace를 사용한 단일 스테핑은이를 우회하여 올바른 사용자 공간 명령을 수행하거나 전혀하지 않겠습니까?