2011-08-14 2 views
2

제목에서 알 수 있듯이 Xcode에서 실행될 때 제대로 실행되지만 홈 화면에서 시작될 때 충돌하는 앱이 있습니다.앱이 Xcode에서 정상적으로 실행되지만 홈 화면에서로드 할 때 충돌이 발생합니다.

빌드 및 분석을 실행하면 메모리 누수 또는 경고가 표시되지 않습니다. (I 보안의 잘못된 인식으로 배제하고 있지 않다,하지만.)

해당 장치의 로그를 보여줍니다 : 내가 문제를 유지 /이 릴리스 생각하게

Exception Type: EXC_BAD_ACCESS (SIGSEGV) 
Exception Codes: KERN_INVALID_ADDRESS at 0x0439e000 

, 그런데 왜 didn를 그것은 Build/Analyze에 나타 납니까? Xcode에서 실행하면 왜 정상적으로 실행됩니까?

편집

나는 또한주의해야 그 엑스 코드에서와 홈 화면 발사에서 모두 시뮬레이터에서 좋은 응용 프로그램 "실행". 카메라를 사용하기 때문에 "runs"이라고 말하면 시뮬레이터에서 실행하는 것이이 모든 경우에 유용하지는 않습니다.


UPDATE

감사합니다, 모두. 모든 리소스의 이름이 올바르게 지정되어 있습니다. atos 명령을 제대로 작동 시키려고합니다. 나는 클래스 파일 이름과 줄 번호 대신에 같은 주소를 되찾고있다.

+0

:

byteIndex += (bytesPerPixel * 2); 

완전히 다음과 같은 고정 된 문제에 아래로 삭제 , 모든 프로젝트와 함께,하지만 시뮬레이터에서만. 기기에서이 문제가 있습니까? –

+0

이것은 실제로 장치에 있습니다. (위의 로그는 장치에서 가져온 것이고 구성 도우미에 표시됩니다. 응용 프로그램 "unplugged"를 실행할 때 콘솔 로그를 볼 수 없기 때문입니다.다행스럽게도 나는 모든 주요 변경 후에 스냅 샷을 사용하고 있습니다. 최악의 경우,이 상황이 일어나지 않았던 시간으로 되돌릴 수 있고, 다시 일어날 때까지 천천히 조각 낼 수 있습니다. 그러나 나는 그다지 조정하지 않을 것입니다./빌드/디버그 사이클. –

+0

iOS 5 베타를 사용하고 있습니까? 나는 cocos2d-iPhone이 베타 SDK를 계획한다는 것을 보았습니다. – Moshe

답변

-1

잊어 버려요. 나는 쓰레드, 파일, 라인 번호가 충돌을 일으킨 장치 로그 목록을 깨달았다. 그것은 내 AVCaptureSession 대리자 captureOutput 메서드에서 일관되게 사용됩니다.

"unplugged"를 실행할 때 CVPixelBufferGetBaseAddress 값이 200 배 더 높게 나타납니다. 또한 루프 중 하나에서 간단한 진단 NSLog를 실행했을 때 충돌이 멈추었지만 (주 스레드에서 호출되는 것을 막아서 영구 수정이 아니 었음을 발견했습니다.)

이 과정에서 나는 어둠의 비웃음에서 찌르는 소리를 내며 기본 주소에서 작업을 제거했습니다. 루프 반복을 저장하려고, 나는이 같은 일을 한 것은 버퍼에 다른 모든 픽셀을 건너 뛸 수 있습니다 : 그것은 또한 나와 함께 일

byteIndex += (bytesPerPixel); 
0

경우에 따라 (아마도 귀하의 경우) Xcode에서 응용 프로그램을 처음 실행하면 응용 프로그램의 새 인스턴스로 빌드되어 실행됩니다. 그런 다음 멈추고 홈 화면에서 실행하려고하면 배경에서 시작할 수 있습니다. 앱이 배경에서 시작될 때 메모리를 적절히 관리하지 않으면 분석기가 메모리 문제를 해결하지 않습니다. 그런 경우인지 확인하려면 홈 버튼을 두 번 클릭하고 거기에 나타나면 앱을 종료하십시오. 그런 다음 홈 화면에서 다시 실행하십시오. 또한 계측기로 디버깅을 시도 할 수도 있습니다.

+0

나는 그것을 실제로 의심했지만 성공하지 못했다. –

관련 문제