2013-07-25 3 views
2

저는 Visual Studio의 디버거를 사용하는 데 익숙합니다.이 디버거는 메서드를 건너 뛰고 무언가가 작동하지 않는 것을 볼 수 있도록 응용 프로그램의 논리 경로를 추적합니다.Xcode 디버거 - 메서드를 통해 디버그

필요에 따라 'Step into'또는 'step over'를 사용하여 Xcode (4.6.3)에서 디버깅 할 때 컴파일 된 코드로 점프하는 것처럼 보이고 길을 잃어 버렸습니다. 나는이 때문에 논리 흐름이나 사건의 순서를 볼 수 없으므로 내가 잘못하고있는 것이 있는가?

실제로 코드에서 수행되는 작업을 추적 할 수 있지만 컴파일 된 코드가 표시되지 않습니다.

예를 들어 내 앱이 예상대로 작동하지 않기 때문에 해당 메서드가 호출 된 후에 어떤 일이 발생하는지보고 싶기 때문에 ViewDidLoad에 중단 점을 넣습니다. 다른 곳의 브레이크 포인트가 맞지 않아 추적해야하는 문제가 있습니다.

그래서 내 ViewDidLoad 중단 점에 도달했습니다. 그 방법을 통해 작업하고 디버거가 메서드의 끝을 치면 컴파일 된 코드로 이동하여 이벤트 순서대로 다음에 무엇이 들어 있는지 알 수 없습니다.

답변

0

나는이 문제를 피할 수 있다고 생각하지 않습니다. 코드가 "떨어져"있을 가능성이 있으므로 기호가없고 어쨌든 소스가 없습니다.

이 상황은 Xcode에 고유하지 않습니다. 그것은 Visual Studio와 다른 모든 O/S에서 발생할 것입니다.

하나의 접근법은 뷰의 모든 서브 클래 싱 된 메소드를 제공하는 것입니다 (비록 모두가 [super method]을 호출하고 더 이상 아무것도 호출하지 않더라도). 각 메소드에 중단 점을 설정합니다.

인스턴스 변수가 예상치 못한 방식으로 구타 당하면 watchpoint을 설정하십시오.

+1

내가 VS라고 생각하는 것은 논리 흐름이 있다는 것입니다. 메서드 A는 메서드 B를 호출하고 메서드 B는 메서드 C를 호출하고 결과가 표시됩니다. 따라서 디버깅 할 때 디버거로 그 흐름을 따라갈 수 있습니다. Xcode에서 메소드 A가 실행 중이고 끝나면 다음에 무슨 일이 일어나는지 보려고 노력하고 있지만 아직 알 수는 없지만 뭔가 알고 있습니다. –

+0

@FullTimeSkeleton 흠, 이런 식으로 Xcode가 VS와 어떻게 다른지 알지 못합니다. Windows와 비교했을 때 코코아 (터치)의 특성 일지 모르지만 근본적으로 코드의 특성은 동일합니다. – trojanfoe

+0

모르겠다. 아마 코딩에 익숙하다. (나는 Xcode에서 다른 사람의 코드를 디버깅하고있다.) VS에서는 일반적으로 내 Page_Load 메서드가 중개자 등을 채우는 메서드를 호출한다는 것을 알고 있습니다. 이 코드에서 나는 채워지는 tableview가 있지만 디버거가 나를 보여주지 않는다는 것을 알고 있습니다. 나는 그것을 알아낼 것 같아. –

0

나는 똑같은 상황에 직면했다. 그러나 아래의 두 링크를 통해 왜 그런 일이 일어 났는지 이해할 수있었습니다.

기본적으로, 먼저 필요 " UN-CHECK는"DEBUG-> 디버그 작업 흐름 -에서 옵션> SHOW 분해는을 디버깅합니다.

그런 다음 자신의 코드를 디버깅하려는 경우 디버깅은 Visual Studio에서와 동일한 방식으로 작동합니다. 그러나 찾고있는 코드가 일부 Framework에서 호출되면 디버거는 "Show Disassembly"설정에 관계없이 반드시 어셈블리 코드로 돌아갑니다.

더 명확히하기 위해이 링크를 확인하십시오. 그것들은 같은 페이지의 답입니다.

XCode Debugger: Why is it only showing me assembler?
https://stackoverflow.com/a/1421275/2377928
https://stackoverflow.com/a/7301489/2377928

감사합니다,이 도움이

희망!