자식 프로세스의 스택을 읽으려고하지만 운이 없습니다. 나는 그것을 사용하는 것이 가능하다는 것을 알고 ptrace
있지만ptrace
의 인터페이스를 사용하면 한 번에 한 단어 만 읽을 수 있으며 스택의 더 큰 부분을 스캔하려고합니다.
또한 ptrace를 사용하여 파일에 첨부 한 후 파일 /proc/$pid/mem
에서 추출한 스택의 경계에서 읽기를 시도했지만 /proc/$pid/maps
( 여기 에서 제안한 것처럼) 시도 할 때 동일한 코드가 성공하더라도 읽기는 계속 실패합니다 (루트로 실행될 때도) 프로세스의 다른 부분 (예 : 힙)에서 읽습니다.
내가 도대체 뭘 잘못하고있는 겁니까? 다른 옵션이 있습니까?
waitpid
사이ptrace(PTRACE_ATTACH,…)
와read
(그렇지 않으면 거기에 가능한 경쟁 조건)? 어떤 오류가 발생read
합니까? 아이가 메모리 매핑에 특이한 일을하고sleep
있습니까? 간단한 아이로 코드를 시험해 볼 수 있습니까?