본문 바로가기

Programming/Linux_Kernel

ptrace() 함수의 PTRACE_ATTACH 옵션 사용시 stop 문제 해결

원문 : 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);
...

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

'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