programing

malloc: ** 오류: 해방된 객체의 체크섬이 잘못됨 - 해방된 후 객체가 수정되었을 수 있습니다.

goodcopy 2022. 7. 5. 23:05
반응형

malloc: ** 오류: 해방된 객체의 체크섬이 잘못됨 - 해방된 후 객체가 수정되었을 수 있습니다.

iOS 앱에 큰 문제가 있습니다. 자세한 디버깅 오류 없이 크래시가 발생할 수 있습니다.스택 트레이스가 비어 있습니다.스택 트레이스에는 다음 2행밖에 없습니다.

  1. UIApplicationMain에서 "symbol stub for: -_"로 크래시 시작:UIHostedTextServiceSession 종료TextServiceAnimated:] .
  2. 그리고 "libsystem_c.dylib"syslogoc_error_break"을 보고합니다.

com.apple.main-thread.

Xcode 디버거 오류(연결된 장치):

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

디버거로부터의 피드백 없이 libsystem_c.dylib을 사용하여 malloc_error_break에 브레이크 포인트를 설정했습니다.나는 이 문제를 해결할 생각이 없다.

문제의 원인을 찾으려면 Xcode에서 Product > Scheme > Edit Scheme 순으로 선택하고 Diagnostics 탭에서 모든 Malloc 설정과 Guard Malloc을 활성화합니다.

그런 다음 응용 프로그램을 다시 실행하면 Xcode가 문제의 원인이 되는 라인에서 정지합니다.

스킴 정의

디버거에 들어가 있기 때문에 메모리 위치를 확인해야 합니다.0x208a7614뭐가 있는지 봐야지메모리에 저장된 데이터는 무엇이 잘못되고 있는지를 파악하는 데 도움이 될 수 있습니다.

다음 중 하나가 발생하고 있습니다.

  1. 물체를 두 번 해방시키고

  2. 할당되지 않은 포인터를 해방합니다.

  3. 이전에 이미 해방된 개체를 가리킨 잘못된 포인터를 통해 쓰고 있습니다.

스택 트레이스는 빈 상태로 되어 있기 때문에, 코드의 어디에 문제가 있는지를 좁힐 수 있는지를 확인하기 위해서, 다양한 장소에서 디버깅로그 문을 추가하는 것이 도움이 될 가능성이 있습니다.계측기에서 메모리 도구를 사용하는 것도 도움이 될 수 있습니다.NSZombies를 켜볼 수 있지만 이는 Objective-C가 아닌 C 할당 문제처럼 보입니다.

또한 충돌 전에 콘솔에 다른 내용이 기록되었습니까?이 경우 문제의 원인을 알 수 있습니다.

안녕하세요, 저는 이 해결책을 찾았습니다. 만약 여러분이 nib 또는 xib 인터페이스를 사용하고 있고 뷰컨트롤러 개체를 푸시하고 싶을 때 이 문제에 직면한다면, 이 오류가 발생하고 당신의 앱이 크래쉬하게 될 것입니다(특히 iPad에서의 오류). 다음은 해결책입니다.

// 이렇게 포맷

UINavigationController *nav=[[UINavigationController      alloc]initWithRootViewController:yourViewControllerObj];

[self.navigationController  presentViewController:nav animated:true completion:nil];

이 상태로 밀어 넣으려고 하지 마세요.

이런 문제가 있다면.다음으로 product->build->modby->modby->modby 객체를 활성화하고 닫은 후 product->정지 후 다시 product-build-run으로 이동합니다.best of lucky

언급URL : https://stackoverflow.com/questions/19840671/malloc-error-incorrect-checksum-for-freed-object-object-was-probably-mod

반응형