2012-08-09 4 views
0

나는이 사고에 대처하기 위해 노력해 왔으며 어디서부터 시작해야할지 모릅니다. 누군가가이 정보를 제대로 탐색하여 Xcode의 도구를 사용하여 범인을 찾는 방법을 알아낼 수 있습니까? 난 이러한 세부 사항이 무엇인지 모르는 : 엑스 코드 디버깅을 위해CFRetain 충돌을 추적하는 방법은 무엇입니까?

enter image description here

답변

1

계측기 도구는 첫 번째 호출 포트, 특히 누수 및 할당 분석기 여야합니다.

Xcode의 제품 메뉴에서 Profile 옵션을 선택하여 사용하십시오.

개체의 초과 방출을 파악하도록 설계된 NSZombie 개체를 사용하여 조사하고 싶을 수 있습니다.

물론 코어 파운데이션/코코아 객체가 아닌 곳으로 포인터를 전달하는 것일 수도 있습니다.

1

좋은 첫 번째 단계는 종종 예외 중단 점을 설정하는 것입니다. 이렇게하려면 왼쪽 사이드 바에서 예외 탭을 선택하고 하단의 더하기 기호를 클릭하고 예외 중단 점을 선택하십시오. 예외가 발생하는 지점에서 실행을 일시 중지하므로 추적하기가 더 쉬워 지므로 도움이 될 수 있습니다.

즉, 게시 한 스크린 샷을 기준으로 볼 때 개체가 두 번 출시되는 것처럼 보입니다. 따라서 많은 도움이되지 않을 수 있습니다. 코드 전체에서 로그 문이나 추가 중단 점을 사용하면 문제가 발생한 위치를 추적하는 데 도움이됩니다.

스크린 샷에 표시된 세부 정보는 컴파일 된 어셈블리 코드이며 호출되는 것으로 주석 처리됩니다. CFRetain은 내부적으로 코코아가 객체를 해제하는 데 사용됩니다 (즉, -release 구현시).

관련 문제