2012-12-18 10 views
6

iPhone 응용 프로그램을 작성하려면 iOS 시뮬레이터와 함께 Mac에서 Xcode 4.5를 사용하고 있습니다. 디버거에서 중단 점을 누르면 변수를보기 위해 "자동"을 사용합니다. 문제는 개체가 처음에는 모두 접혀 있고 그 값을보기 위해 개체를 확장해야한다는 것입니다. 괜찮습니다. 그러나 지루하고 읽기가 어렵습니다. 데이터가 디버거에 표시되는 방식을 사용자 정의 할 수있는 방법이 있습니까?xcode 4.5 디버거 (멍청이)의 객체 인 변수 표시 방법을 개선하는 방법

나는 LLDB tutorial을보고 퀸 테일러의 the post에서 "custom summary strings"를 보았지만 이해가되지 않습니다. 그는 xcode의 이전 버전을 사용해야합니다. 기본적

, I는 객체가 같은

클래스 VEC3 { 공개 : 플로트 X, Y, Z; };

및 디버그 창에서

나는

pos (Vec3) 

을보고 내가 오히려 볼 줄은 변수를 확장하지 않고

pos = (Vec3) (x=45.2, y=10.7, z=2.0) 

입니다. 아무도 내가 어떻게 할 수 있는지 안다?

답변

2

Vec3이 클래스 (또는 하위 클래스가 될 수있는 클래스) 인 경우 description을 재정의하십시오. 이를 통해 콘솔에 po pos라고 말하면 나타나는 형식을 지정할 수 있습니다. 애호가 얻으려면

이 페이지를 참조하십시오 : 당신은

type summary add --summary-string 

당신이이 유형의 변수는 표시 할 방법에 대한 설명 문자열 다음에 말할 수

http://lldb.llvm.org/varformats.html

.

당신이 정말로 신경 써야하는 경우, 당신은 자신의 포맷터를 쓸 수 있습니다; 디버깅과 LLDB에 관한 두 WWDC 2012 비디오에서 좋은 토론. 하지만 그렇게하기 위해 파이썬 스크립트를 작성해야하므로 "멍청한"해결책을 더 많이 제공했습니다.

+0

예 Vec3을 수정할 수 있습니다. "설명"메시지는 Objective-C에서는 작동하지만 C++에서는 작동하지 않습니다. 콘솔 창에서만 작동합니다. 조사 창을 사용자 정의 할 수 있기를 바랬습니다. MS Studio에서는 "autoexp.dat"파일을 사용하여 매우 잘 할 수 있습니다. –

+0

안녕하세요! 방금 구조용 사용자 지정 포맷터를 만드는 방법을 알려주는 정말 [훌륭한 웹 페이지] (http://disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/XcodeDebugging/220-Viewing_Variables_and_Memory/variables_and_memory.html)를 발견했습니다. 'CustomDataViews.plist'를 수정하여 CGRect) ... 불행히도 애플은 그것을 제거했습니다 ... 적어도, 어디서나 그것을 찾을 수 없습니다. –

+0

"시계 창을 사용자 정의 할 수 있기를 바랬습니다."그래, 그게 파이썬 스크립트의 목적입니다. 당신은 그것을 쓰고, 당신은 ~/.lldbinit 파일을 통해 그것을 추가한다. 당신은 모두 설정되어있다. – matt

7

xcode 4.5.2에서이 기능을 사용할 수있었습니다. 요약하면 다음 단계가 있습니다.

  1. 열거 나이 줄을 텍스트 편집기를 사용하여 ~/.lldbinit를 생성하고 추가

    type summary add Vec3 --summary-string "x=${var.x}, y=${var.y}, z=${var.z}" 
    
  2. 다시 시작 엑스 코드. 중단 점을 명중 할 때 지금 VEC3은

    pos (Vec3) x=1, y=3.125, z=9.5 
    

당신은 다른 많은 것들을 할 수있는,로 표시됩니다.lldbinit 요약 문자열을 자동으로 생성 예를

type summary add Vec3 --inline-children --omit-names 

를 들어 http://lldb.llvm.org/varformats.html

설명하고

type summary add --inline-children -x "Vec[:alnum:]*" 

는 "VEC"로 시작하는 모든 종류의 요약 문자열을 자동으로 생성한다.

+0

또 다른 유용한 맛있는 음식. 조사 식 창에서 변수를 두 번 클릭하면 유형의 요약 문자열을 일시적으로 사용자 정의 할 수있는 "유형에 대한 요약 형식 설정"이라는 팝업이 나타납니다. 그러나 구문은 "type summary add ..."와 약간 다른 것으로 보입니다. –