objc_exception_throw에 중단 점을 추가하는 방법은 무엇입니까?


80

이이에 브래드 라슨에서 대답했다 SO의 질문

두 개의 중단 점을 추가하면 이러한 예외를 디버깅 할 수 있습니다. 이렇게하려면 실행 | 표시 | 중단 점을 만들고 두 개의 전역 중단 점을 만듭니다 (모든 응용 프로그램에서 매우 유용하기 때문에 전역 적으로 수행합니다). 첫 번째 이름은 "objc_exception_throw"이고 위치는 "libobjc.A.dylib"여야합니다. 두 번째는 "-[NSException raise]"이고 해당 위치는 "CoreFoundation"이어야합니다.

이제 중단 점이 활성화 된 상태에서 애플리케이션 디버깅을 시작하면 이러한 예외가 발생할 때 중단됩니다. 그러면 디버거 내에서 예외를 유발 한 이벤트 체인을 볼 수 있습니다.

이제이 답변에서 언급 된 위치를 어떻게 추가합니까 ???


누구든지 XCode 4에 대한 스크린 샷 / 메뉴 경로가 있습니까?
buildsucceeded

2
: 엑스 코드 4에서이 작업을 수행하는 방법에 대한 지침은 애플 개발자 포럼에서이 스레드를 확인 devforums.apple.com/thread/68421
앤디 싱클레어

답변:


81

나는 Brad의 대답이 매우 분명하다고 생각합니다. 명확하지 않은 경우 도움이 될 수 있기를 바랍니다.

Xcode의 상단 메뉴에서 실행> 표시> 중단 점을 클릭합니다. 새 창이 나타납니다.

왼쪽 메뉴에서 "전역 중단 점"을 선택합니다. "Breakpoint"열 아래 오른쪽에 "Double-Click for symbol"텍스트가있는 상자가 있어야합니다. 이 상자를 한 번 클릭하고 "objc_exception_throw"를 입력합니다.

그런 다음 "location"열 아래의 "objc_exception_throw"옆에있는 공간을 한 번 클릭합니다. 위치를 입력 할 수있는 상자가 나타납니다 (이 경우 "libobjc.A.dylib"). 도움이 될 스크린 샷을 만들었습니다.

대체 텍스트


잘 작동합니다. 세부 사항 주셔서 감사합니다.
Rob Segal

17
Xcode 4에는이를 추가 할 수있는 중단 점 탐색기가 있습니다.
Don



6

Xcode 6-최상위 메뉴에서

디버그> 중단 점> 예외 중단 점 만들기


다른 답변이 변경되었습니다.이 답변은 2017 년 4 월 / Xcode8
Josh

4

또한 +[NSException raise:format:arguments:]중단 점을 추가하는 것이 좋으며 그 위치는 CoreFoundation.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.