2012-08-15 5 views
0

많은 양의 코드가 있으며 다음과 같은 오류/예외가 발생합니다.Xcode malloc 오류 디버깅

malloc: *** error for object 0xce52964: incorrect checksum for freed object - object was probably modified after being freed. 
*** set a breakpoint in malloc_error_break to debug 

NSZombies와 같은 모든 메모리 관리 항목으로 실행하면 완벽하게 작동합니다.

나는 유형 malloc_error_breakSymbolic Exception Breakpoint을 추가, 그것은 임의의 라인 (AN NSLog(@"part6");이있는 내가 NSLog을 통해 섹션으로 그것을 파괴함으로써 내 코드를 디버깅하기 위해 사용) 중지됩니다.

또한 디버거에 입력 해봤이 내가 무엇을 얻을 수 있습니다 :

po 0xce52964 
(int) $3 = 216344932 [no Objective-C description available] 

사람이 내가 디버깅이 더욱 시도 할 수있는 방법을 알고 있나요? 내 코드가이 문제의 원인인지 잘 모르겠습니다.

답변

1

(Xcode에서 수행 할 수있는 malloc 스택 로깅 사용 - 좀비 아래의 몇 가지 확인란).

그런 다음 프로그램을 실행/테스트하십시오. - 문제를 재현하십시오. 이제 malloc_history 유틸리티를 사용하여 malloc이 메시지에 플래그를 지정한 할당에 대한 자세한 정보를 얻으십시오.

+0

나는 이것을 켜고/tmp/폴더에 씁니다. "malloc_history"는 어떻게 사용합니까? – MrHappyAsthma

+0

https://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/malloc_history.1.html – justin