Trace All ObjC Messages
OSXDEV
Objective-C로 짜여진 코코아 프로그램이 실행중의 모든 Objective-C messaging을 로그파일로 만들어 주는 기능이 있다.
Terminal에서 NSObjCMessageLoggingEnabled 환경변수를 YES로 세팅해주고 해당 어플리케이션을 실행시키면 된다.
% setenv NSObjCMessageLoggingEnabled YES % /Applications/Safari.app/Contents/MacOS/Safari
실행이 끝나면 /tmp파일에 msgSends-1662 (1662는 pid)와 같은 파일이 생성되어 있는 것을 볼 수 있다. 이 파일은 이 어플리케이션의 모든 Obj-C Messaging이 로깅되어 있다.
문제는 이 옵션을 켜고 프로그램을 수행시키면 프로그램의 수행속도가 현저하게 떨어지고 (당연한 이야기겠지만.) 뿐만 아니라 이 로그파일의 크기가 엄청크기 때문에(음.. 물론 이것도 당연한 이야기같구만.) 이 로그파일을 분석하는 것이 그리 만만한 일이 아니라는 것!
꼭 필요한 경우가 아니라면 왠만하면 이 방법을 사용하지 않는 것이 정신건강에 좋겠지만, 이런 방법이 있다는 것을 알아두는 건 그리 나쁘지 않을 듯.




