2012-07-28 6 views
2

내 응용 프로그램에서 시간이 중요한 크래시를 디버깅해야하며 NSLog가 콘솔에 즉시 쓰지 않기 때문에 동기식으로 내 코드에서 콘솔에 쓰는 방법이 있는지 궁금합니다.동 기적으로 콘솔에 쓰기

예를 들어 여기서 printf을 선택하거나 동일한 문제를 처리해야합니다.

+1

'printf'도 버퍼링되므로 적어도 printf를 호출 한 직후에'fflush (stdout)'해야합니다. – dasblinkenlight

+0

음 NSLog는 메시지를 버퍼되지 않은 stderr에 출력합니다 (fprintf (stderr, ...)와 동일하게 구현할 수 있습니다). 그래서 나는 콘솔 출력을 위해 이것이 당신이 얻을 수있는 최선이라고 생각합니다. –

답변

3

충돌하는 줄 앞에 중단 점을 추가 할 수 있습니다. 기본적으로 Xcode는 이미 디버거 콘솔에 액세스 할 수 있도록 이미 프로세스를 중단한다고 생각하지만 ... 추가하지 않을 수도 있습니다. 제품으로 이동하여 몇 가지 추가 진단 - 등 가드 가장자리, 좀비 개체, 등 (상단 메뉴)> 편집 계획을 ..

또한, 메인 스레드에서 NSLog를 호출 할 수

[self performSelectorOnMainThread:@selector(log:) withObject:@"String .." waitUntilDone:YES]; 

- (void)log:(NSString *)message { 
    NSLog(message); 
} 
관련 문제