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, pid, 0, 0);
usleep(10);
...
ptrace(PTRACE_DETACH, pid, 0, 0);
...

스케쥴링과 해당 동작의 관계에 대해서는 아직 확인하지 못했습니다.