2009-08-22 5 views
0

Heyho!
작은 앱을 과 함께 LSUIElement으로 실행했습니다.
때로는 팝업 메뉴의 메뉴 항목이 코드에 의해 업데이트됩니다. 그러나 업데이트 된 NSMenuItem (또는 해당 수퍼 메뉴)가 "강조 표시"되면 로깅하지 않고 응용 프로그램이 중단됩니다.강조 표시된 NSMenuItem을 업데이트 할 때 응용 프로그램이 충돌 함

의견이 있으십니까? 답해 주셔서 대단히 감사합니다.

답변

1

gdb에서 실행하는 동안 크래시를 재현 할 수 있습니까? Gdb는 명령 행에서 정상적으로 작동하며 명령 행에서 gdb를 통해 GUI 애플리케이션을 실행하여 간헐적 인 오류를 잡으려고합니다.

gdb에서 충돌이 발생하면 bt 명령을 사용하여 충돌 위치의 백 트레이스를 가져옵니다.

이러한 종류의 충돌 (간헐적 인)은 거의 항상 메모리 손상, 잘못된 스레딩 또는 과도한 객체로 인해 발생합니다. 코드를보고 Cocoa 메모리 관리 지침을 따라야합니다. 쓰레드를 사용하고 있다면, 메인이 아닌 쓰레드로부터 부적절하게 UI 객체를 부 풀리지 말아야한다.

+0

Mmh. 내가 "비 주 스레드에서 부적절하게 UI 객체를 처형 한 것 같습니다." 고마워요! 이 도움 안됨 : (void) performSelectorOnMainThread : (SEL) aSelector withObject : (id) arg waitUntilDone : (BOOL) wait – papr

관련 문제