원문 : 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); ...
스케쥴링과 해당 동작의 관계에 대해서는 아직 확인하지 못했습니다.
'Programming > Linux_Kernel' 카테고리의 다른 글
strace man page (0) | 2008.09.30 |
---|---|
_alloca 와 smart point (1) | 2008.09.29 |
Process Tracing Using Ptrace - By Sandeep S (0) | 2008.09.25 |
How to code debuggers (0) | 2008.09.25 |
/Proc/[pid]/stat 에서 보이는 정보 분석하기 (0) | 2008.09.18 |