2012-04-18 1 views
5

저는 표준 라이브러리로 Xcode 4.3.1의 C++ 11 언어 언어와 libC++를 사용하고 있습니다. 이 조합의 언어 지원은 훌륭하지만 디버깅은 고문입니다. Xcode의 "요약 형식"이나 lldb의 요약 형식 기능 중 어느 것도 예쁜 형식의 표준 형식 (std :: string, std :: vector 등)을 표시하지 않습니다. 이러한 유형의 예쁜 프린터를 작성하는 것은 복잡하기 때문에 대수롭지 않습니다. (예 : std :: string은 libC++에서 매우 복잡합니다.)Xcode 4.3.1에서 libC++를 사용할 때 합리적인 변수 디스플레이를 얻으려면 어떻게해야합니까?

이 상황에서 다른 개발자가 STL 유형에 대한 적절한 변수 표시를 얻는 방법은 무엇입니까? 또는 Xcode/lldb와 함께 libC++를 사용하는 사람이 아직 없습니까?

답변

0

이 기능은 Xcode 4.4에서 올바르게 작동합니다. Xcode 4.3 사용자를위한 최상의 솔루션은 단순히 Xcode를 업데이트하는 것입니다.

4

W lldb 저장소에 지원이 있습니다.

svn co http://llvm.org/svn/llvm-project/lldb/trunk lldb 

당신보다 할 수있는 엑스 코드의 lldb 쉘에서 (I 개정 160,855있어) : 이것은 내가 한 일입니다 lldb 형식의 표준 : : 벡터, 표준 후

command script import /Users/arne/oss/lldb/examples/synthetic/libcxx.py 

:: map, std :: string and std :: map 좀 더 멋지게 :

(lldb) p rv 
(std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >) $3 = size=2 { 
    (unsigned long) [0] = 503 
    (unsigned long) [1] = 503 
} 

나는 이것을 Xcode 4.4에서 테스트했다. Xcode 4.3과 비슷하게 작동해야합니다.

.lldbinit init 파일에 명령을 넣을 수 있습니다. Xcode조차도 구조가 멋지게 표시됩니다.

+0

위의 두 번째 단계 ("명령 스크립트 가져 오기 ...")에서 Xcode 4.3.3에서 lldb 셸은 "ImportError : formatters.Logger라는 모듈이 없습니다."라는 오류 메시지로 응답합니다. " 나는 그것을 해석 할만큼 충분히 잘 모른다. 그것은 4.3에 문제가 될 수 있습니까? – OldPeculier

+0

필자는 4.3.3에서 이전 버전의 스크립트가 필요하다고 생각합니다. 그러나 나는 lldb svn에서 Xcode 4.3에서 어떤 버전이 작동하는지 알지 못합니다. – plaisthos

+0

Upvote 이것은 더 이상 "최상의"답변이 아니지만 일반적으로 사용자 정의 유형에 매우 유용하기 때문에 더 이상 사용하지 마십시오. –

관련 문제