2012-02-29 3 views
7

내 앱이 계속 충돌합니다. 예외 중단 점은앱이 다운되는 중 .... objc_exception_throw

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

에서 발생하는 이유는 그래서 충돌을 일으키는 것을 아무 생각이 말해주지 않습니다. 왼쪽에는 objc_expcetion_throw 때문에 그게 나왔다. 어떻게 디버깅 할 수 있습니까? 감사

+0

이 줄로 갈 때까지 디버깅 해보십시오. Xcode 4.2에서는 main.m의 줄에서 예외를 똑바로 띄게하는 문제가 있습니다. 그것 없이는, 아무도 당신을 도울 수 없을 것입니다. 그리고 더 많은 코드를 게시하십시오. –

+0

중단 점을 설정하지 않고 앱을 실행하면 스택 추적 및 원인이 로그에 저장됩니다. – JeremyP

답변

6

이와 같은 경우 모든 예외에서 중단되는 중단 점을 만듭니다. 중단 점 탭에서 추가 버튼을 클릭하면 생성되는 기본 중단 점입니다.

이 중단 점을 사용하면 XCode가 예외 지점에서 중단되고 스택과 함께 발생한 코드 줄을 볼 수 있습니다.

나는이 이미지를 게시했지만 담당자가 충분하지 않습니다!

5

사용에게 @try/@catch :

@try { 
    return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
} 
@catch (NSException *ex) 
{ 
    // log ex... 
} 

아니면 캐치되지 않는 예외 핸들러를 사용할 수 있습니다 : 마지막으로, 당신은 항상 objc 예외에 깰 수

void uncaughtException(NSException *except) 
{ 
    // log Except 
    NSLog(@"Exception!"); 
} 

NSSetUncaughtExceptionHandler(uncaughtException); 
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

을 :

Product->debug->create symbolic breakpoint 
Symbol: objc_exception_throw 
+0

작동하지 않습니다. 여전히 로그가없고 같은 이전 위치에 중단 점이 있습니다. ( – 0xSina

+0

@PragmaOnce 디버깅의 두 가지 새로운 방법으로 업데이트 된 답변을 확인하십시오! –

1

Richard의 충고와 impl uncaughtException 처리기를 실행하십시오. 핸들러에 중단 점을 설정하십시오. 예외 화재, 당신의 출력 콘솔이를 입력 할 때 : 당신에게 예외의 기원에 관한 더 자세한 정보를 제공해야합니다

po [except callStackSymbols] 

합니다.

참고 : except은 사용 된 예외 변수의 이름입니다.

관련 문제