반응형
strace를 사용하여 자식 프로세스를 추적하는 방법은 무엇입니까?
나는 strace
프로세스에 잠깐 붙였다. 이 프로세스는 90 개의 스레드를 생성했습니다. 문제가되는 스레드를 찾았을 때 부모 스레드, 조부모 스레드 등 루트 프로세스까지 지루하게 검색해야했습니다.
어떤 스레드가 다른 스레드를 생성했는지 신속하게 파악할 수있는 트릭이나 도구가 있습니까? 또는 더 나은 방법은 다음과 같은 스레드 생성 트리를 인쇄하는 것입니다 pstree
.
strace -f
fork()
에드 의 자식 프로세스를 추적 합니다.
라는 펄 스크립트가 strace-graph
있습니다. 다음은 github 의 버전입니다 . crosstool-ng 버전의 컴파일러 와 함께 패키지로 제공됩니다 . 크로스 플랫폼을 사용하여도 작동합니다.
ARM Linux 상자.
$ ./strace -f -q -s 100 -o app.trc -p 449
$ tftp -pr app.trc 172.0.0.133
X86_64 Linux 상자.
$ ./strace-graph /srv/tftp/app.trc
(anon)
+-- touch /tmp/ppp.sleep
+-- killall -HUP pppd
+-- amixer set Speaker 70%
+-- amixer set Speaker 70%
+-- amixer set Speaker 70%
+-- amixer set Speaker 70%
+-- amixer set Speaker 50%
+-- amixer set Speaker 70%
`-- amixer set Speaker 50%
출력은 기본 추적 로그를 탐색하는 데 사용할 수 있습니다.
쉬운 방법이 보이지 않습니다.
-ff
with 옵션을 사용하여 -o filename
여러 파일을 생성 할 수 있습니다 (pid 당 하나).
예 :
strace -o process_dump -ff ./executable
grep clone process_dump*
어떤 부모가 무엇을 만들 었는지 확인하는 데 도움이됩니다. 아마도 그것은 당신을 도울 것입니다-적어도 당신은 뒤로 검색 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4053142/how-to-track-child-process-using-strace
반응형
'development' 카테고리의 다른 글
문자열을 숫자로 변환 (0) | 2020.08.30 |
---|---|
클래스의 인스턴스 만들기 (0) | 2020.08.30 |
웹에서 호출하면 저장 프로 시저가 느리고 Management Studio에서 빠르게 (0) | 2020.08.30 |
dp는 dip과 동일합니까? (0) | 2020.08.30 |
Isotope와 Masonry jQuery 플러그인의 차이점 (0) | 2020.08.30 |