나는 사용자 스택 크기를 추적하는이 간단한 DTrace를 스크립트 건너했지만,이 OS X 마운틴 라이온에서 작동하지 않습니다 :DTrace : OS X에서 사용자 스택 크기를 추적 하시겠습니까? (curthread-는> t_procp-> p_stksize?)
dtrace -n 'sched:::on-cpu { @[execname] = max(curthread->t_procp->p_stksize);}'
(에서 : http://www.solarisinternals.com/wiki/index.php/DTrace_Topics_One_Liners)이 오류는 OS X에 반환
은 다음과 같습니다 실제로
dtrace: invalid probe specifier sched:::on-cpu { @[execname] =
max(curthread->t_procp->p_stksize);}: in action list:
t_procp is not a member of struct thread
, 나는 "curthread"의 유효 회원 OS X의에 무엇인지 알아 내려고 힘든 시간을 보내고있어 동등한가 현재 사용자 스택 크기까지 드릴 다운하는 방법 스레드? 아니면 OS X에서 단지 불투명 한 포인터 인 "curthread"입니까? 스레드 식별에만 사용할 수 있습니까? 이것이 "pid"공급자를 통해이 추적을 수행하는 것이 행복 할 것입니다.
감사합니다.
OSX의'구조체 thread' 여기에 있습니다 : :
예를 들어,이 스크립트는
-abortEditing
메서드가 호출되면 모든 방법을 최대 2 호출 깊은 호출 녹화를 시작합니다 HTTP : // WWW .opensource.apple.com/source/xnu/xnu-2050.9.2/osfmk/kern/thread.h – trojanfoe고마워, 그건 확실히 흥미 롭지 만, 나는 아직도 거기에서 사용자 스택 크기로 어떻게 움직이는 지 모르겠다. OS X 구조체는 t_procp-> p_stksize를 특징으로하는 (추정 된) Solaris 구조체와는 다릅니다. –
다양한 소스를 검색 할 때 OSX에 상응하는 것으로 보이지 않습니다. 커맨드 라인에서'apropos dtrace'를 시도하면 Mac에서 제공되는 스크립트를 볼 수 있습니다. 그들 중 누구도 당신이 찾고있는 것을 제공하는 것처럼 보이지 않으므로 직접 작성해야 할 수도 있습니다. – trojanfoe