thread 정보...

글쓴이: 익명 사용자 / 작성시간: 월, 2018/01/29 - 12:21오전
android에서 스레드의 스택트레이스를 출력해서 보고있습니다.
그런데 getCurrentThread().getStacktrace() 뿐만아니라 기본 이런 스택트레이스가 스레드단위로 제공이 되더군요.
안드로이드에서 제공해주는 함수들 전부 이런거같은데 이렇게되면 로직 중간에 스레드를 생성해서 진행하는 부분이 있으면 thread run이 스택트레이스 최상위에 보이고 그 스레드를 호출한 함수 윗부분은 보이지가 않습니다.
프로세스는 pcb 등을 통해 부모 프로세스와 자식 프로세스등의 정보같은것을 볼 수 있는데 스레드는 그런 개념이 없는 것 같기도하고...
질문의 요점은 스레드를 호출, 실행한 스레드의 스택트레이스와 호출된 곳에서의 스택트레이스를 연결할 수 있는 정보가 있을까요?
thread 3에서
스택트레이스 : 1) 2) 3)... 5) .. 거쳐서 6)에서 새 스레드를 생성해서 7)을 호출하면
thread 4에서
스택트레이스 : 7) 8) 9)...
이렇게 보일텐데 스레드 4의 7)을 호출한게 스레드 3의 6)이라는 것을 연결지을 수 있을까요? 굳이 안드로이드 기반이 아니더라도 리눅스 수준에서 확인해볼만한게 있을까요?
Forums:
clone() 이후의 stack frame (들)을
clone() 이후의 stack frame (들)을 역추적하는 것이라 clone 이전으로는 back trace 가 안될 듯 싶은데요.
clone() 을 한 놈(main thread 혹은 parent)의 stack frame 은 이미 바뀌어 있을테니
댓글 달기