내 첫 번째 본능은 그 정보의 대부분이 스택 추적에서 사용 가능하므로 gdb
과 중단 점을 사용하는 것이 좋습니다. 당신이 정말로 그것을 인쇄를 참조하려는 경우에는, 당신이 무슨 말을하는지 대략 수있는 방법이 있습니다에 대한
전처리 함수/메소드 이름을 인쇄하기위한 __PRETTY_FUNCTION__
매크로를 인식하고 목표 - C 잘 작동 행동 양식. 메서드 이름과 값을 self
의 각 관심있는 메서드에서 인쇄하면 가난한 사람의 스택 추적이 거의 생성 된 것입니다.
#define METHOD() printf("%s\t0x%x\n", __PRETTY_FUNCTION__, (unsigned int)self)
을 그런 다음 그 정보를 인쇄 할 때마다 그냥이 줄을 포함 :
METHOD();
를 원하는 모든 파일이 포함 헤더에서이 같은 #define
포함
시도 출력은 다음과 같습니다.
-[MyClass initWithFoo:bar:] 0x12345678
앞서 말했듯이 이러한 유형의 접근 방식은 방대한 양의 출력을 생성 할 수 있으며 gdb는 아마도 더 실용적인 옵션 일 것입니다.
물론 ARM은 Mac이 아닌 iPhone을 타겟팅하는 경우에만 적합합니다. –
허. 전에 아이폰에 대해 언급 한 질문을 맹세 할 수있다. – Ken
당신 말이 맞아요. Quinn Taylor가 디버깅, 프로그램 흐름 및 메소드로 대체하기 전에는 원래 iphone, uikit 및 cocoa-touch 태그가있었습니다. http://stackoverflow.com/revisions/1373991/list 혼란을 가져 주어서 죄송합니다. –