Programming/Linux_Kernel
ptrace() 함수의 PTRACE_ATTACH 옵션 사용시 stop 문제 해결
decdream
2008. 9. 25. 11:28
원문 : http://letsme.com/tag/ptrace
--------------------------------------------------------------------------------------------
리눅스에서 ptrace() 함수의 PTRACE_ATTACH 옵션을 사용하여 특정 프로세스에 attach 할 경우에 return value는 정상이지만 해당 프로세스에 attach 가 되지 않고 detach 후에도 프로세스가 STOP 인 상태로 남게되는 경우가 있습니다.
이런 경우에 ptrace() 함수를 사용하여 attach한 직후에 sleep() 이나 usleep() 함수를 사용하여 스케쥴링을 시키면 원하는대로 동작을 하게 됩니다.
스케쥴링과 해당 동작의 관계에 대해서는 아직 확인하지 못했습니다.
--------------------------------------------------------------------------------------------
리눅스에서 ptrace() 함수의 PTRACE_ATTACH 옵션을 사용하여 특정 프로세스에 attach 할 경우에 return value는 정상이지만 해당 프로세스에 attach 가 되지 않고 detach 후에도 프로세스가 STOP 인 상태로 남게되는 경우가 있습니다.
이런 경우에 ptrace() 함수를 사용하여 attach한 직후에 sleep() 이나 usleep() 함수를 사용하여 스케쥴링을 시키면 원하는대로 동작을 하게 됩니다.
ptrace(PTRACE_ATTACH, pid, 0, 0); usleep(10); ... ptrace(PTRACE_DETACH, pid, 0, 0); ...
스케쥴링과 해당 동작의 관계에 대해서는 아직 확인하지 못했습니다.