2011-08-28 11 views
0

내 응용 프로그램이 실행 중 여러 시점에서 충돌하고 코드의 같은 지점에서 다음 오류가 발생합니다. 내 연구에 의하면 이것이 기억 문제이지만, 나는 왜 그런지 잘 모르겠다. 나는 Objective-C에 대해 잘 알고있는 앱 개발자 (오히려 웹 개발자)가 아니다. 나는이 응용 프로그램을 만들지 않았다 (Long Story).xcode에서 EXC_BAD_ACCESS 오류가 발생했습니다.

#import <UIKit/UIKit.h> 

int main(int argc, char *argv[]) 
{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 
    int retVal = UIApplicationMain(argc, argv, nil, nil);  //Crashes with EXC_BAD_ACCESS 
    [pool release]; 
    return retVal; 
} 

나는이 응용 프로그램의 나머지 부분을 몰라도 아마 힘든 알고 있지만,이 발생할 수 있습니다 어떤 사람에 관한 올바른 방향으로 날 지점 수, 또는 어떻게 그것을 디버깅을 시작할 수 있습니다?

참고 : 일부 메모리 누수 문제가 해결 될 때까지 응용 프로그램에서이 오류가 발생하지 않았습니다. 도움이되는지 확실하지 않습니다.

+0

릴리스 콜을 확인하십시오. 문제가 있습니다! NSFombie 클래스를 사용하여 주석을 모두 달거나 주석을 달으십시오. – Nekto

답변

3

올바른 방향은 Instruments (/ Developer/Applications 폴더의 Xcode와 함께 제공됨)를 사용하는 것입니다. EXC_BAD_ACCESS 인 경우 가장 좋은 방법은 좀비 도구입니다.

0

Xcode 4 또는 이전 버전을 사용하고 있는지 여부에 따라 SO 대답이 How to enable NSZombie in Xcode? 인 경우 유용 할 수 있습니다. 귀하의 질문에 오류가 최상위 수준에서보고되므로 오류 원본에 대해 알리는 것이 특히 유용하지 않다고 생각했습니다.

내가 제공 할 수있는 2 센트의 의견은 정적 분석기를 처음 시도한 것과 비슷한 경험이 있다는 것입니다. 그 보고서에 따르면 누출 가능성을 수정하여 실제로 리소스를 미리 해제하려고했습니다. 이 도구는 도움이되지만 시작할 때 보일 수도있는 것보다 더 많은 시간을 마스터해야합니다. 그것은 푸시 버튼처럼 보이지만, 정확하지는 않습니다. 시도하지 않는 해결책이 적절하지 않을 때 올바른 것처럼 보일 수 있습니다 (분석 능력을 넘어서서 더 "미묘한"실수를 범했습니다)) .

+0

NSZombie를 활성화 할 필요는 없습니다. 좀비 도구로 인스 트루먼 트에서 앱을 실행하면 DTrace에 대해 매우 포괄적 인 GUI 래퍼가 설정됩니다. –

관련 문제