2011-11-26 6 views
7

저는 Xcode를 사용하여 2 년 전부터 iPhone Apps를 개발해 왔습니다. 지난 몇 달 동안 iOS 5 개발을 위해 Xcode 4.2로 업데이트했습니다.Xcode 4.2에서 더 이상 알려지지 않은 충돌이 발생했습니다.

이전 버전의 Xcode에서는 오류가 발생한 위치의 로그가없는 경우 매우 드문 것으로 나타났습니다. Xcode 4.2/iOS 5에서는 정기적으로 로그없이 충돌이 발생합니다. 필자는 main.m에서 "program received signal SIGABRT"(또는 다른 메시지 몇 개)와 같은 메시지가 있지만 로그 메시지가 전혀없는 코드로 끝납니다. (Xcode gui 하단의 "All Output"창에서 찾고 있습니다).

예를 들어 나의 마지막 것은 initWithNibName : bundle : 메소드를 사용했지만 잘못된 nib 이름을 입력 한 곳입니다. 코드는이 줄을 오류없이 전달했지만 pushViewController : animated : 메서드를 사용하면 코드가 SIGABRT 메시지와 충돌하지만 로그 메시지는 표시되지 않습니다. 그것은

내가 엑스 코드에서 누락 무언가가 내 오타 ... 내가 훨씬 더 유익한 메시지를 볼 것입니다 엑스 코드의 이전 버전의 확신

을 ... 찾는 나를 위해 잠시했다 4.2? 추가 디버깅 기능을 사용해야합니까? 더 유용한 충돌 정보를 제공하는 방법은 없습니까? 또는 iOS 5/Xcode 4.2의 알려진 문제입니까?

어떤 포인터 주셔서 감사합니다 ...

+0

큰 버그 : 10500195 – zaph

답변

1

당신도 혼자가 아닙니다. 나는 이것도 발견했습니다. 가장 최근의 xcode로 크래시를 진단하기에 충분한 정보가 로그에없는 경우가 종종 있습니다. 도움이 될만한 두 가지 팁이 있습니다.

  1. 실제 장치에서 실행됩니다. 나는 장치에서 충돌 할 때 더 자세한 로그를 얻는 경우가 종종 있습니다.

    최악의 경우 주최자에게 가서 장치의 충돌 로그를 확인할 수 있습니다. 그러면 스레드가 충돌하고 스택이라고 부르는 것을 충돌이 발생한 것처럼 보입니다.

  2. GDB와 LLVM 컴파일러 또는 디버거간에 전환하십시오. 나는 이것으로 충분하게 흥분하지 않는다. 그러나 나는 이것이 때때로 도움이되었다고 생각한다.

+0

감사합니다. 내가 미치지 않을 거란 걸 알면 다행이야! :) – MrMikeT

관련 문제