2013-02-25 2 views
11

저는 스파게티 코드를 풀어 놓았습니다. 연습 문제로 시작한 후 응용 프로그램을 걷고 있는데, applicationDidFinishLaunching을 깨고 넘어서고 있습니다.Xcode 4.6의 모든 기호화 된 코드를 중단하려면 어떻게해야합니까?

이 첫 번째 메서드가 반환 될 때 나는 어셈블리를 중단합니다. 단계를 밟을 때와 언제 발을 밟아야하는지 아는 것은 정말 고통스런 일입니다. 디버거가 모든 기호화 된 코드 (즉, Xcode에서 볼 수있는 코드, 즉 '사용자'코드, 기본적으로 비 프레임 워크/라이브러리 코드)에서 일시 중지하기를 원하지만 Apple의 내부 메소드는 신경 쓰지 않습니다.

나는 (또는 전임자)이 작성한 모든 메서드와 함수의 첫 번째 줄 (또는 모든 줄)에 중단 점을 설정하는 방법을 찾고 있습니다.

이렇게 할 LLDB 부두가 있습니까?

답변

7

것 MyApp를 ''/ 모듈이라고 제품을 가정, 기능이 다른 공유 라이브러리 (애플 프레임 워크)의 사람들을 제외하고 '당신의 모든 모듈에 브레이크 포인트를 설정하는 간단한 방법이있다 :

breakpoint set -s MyApp -r . 

그러나 에 정적으로 링크 된 라이브러리가 포함됩니다. 이는 앱 스토어에서 동적 링크가 허용되지 않아 가져온 모든 라이브러리를 의미합니다.

클래스에 접두어가 붙는 경우 해당 접두어가있는 클래스의 일부인 함수 만 깨면 결과의 범위를 좁힐 수 있습니다. 접두사가 'MA'라고 가정하면 다음과 같이 할 수 있습니다.

breakpoint set -s MyApp -r ^[^A-Za-z]*MA 

코드의 대부분을 차지해야합니다.

+0

우수 답변, 친절하게 감사드립니다. 다른 것들을 참조하기 위해,'-s'는 중단 점을 공유 라이브러리로 제한하고,'-r'은 중단 할 함수를 일치시키는 정규 표현식을 나타냅니다. – Swizzlr

+0

합성 된 속성 접근자를 무시하는 방법이 있다면 큰 보너스 포인트입니다. – Swizzlr

관련 문제