2012-04-18 26 views
5

Tôi đang sử dụng phương ngữ ngôn ngữ C++ 11 của Xcode 4.3.1 cùng với libC++ làm thư viện chuẩn. Sự hỗ trợ ngôn ngữ trong sự kết hợp này là tuyệt vời, nhưng gỡ lỗi là tra tấn. Cả Định dạng Tóm tắt "Định dạng Tóm tắt" của Xcode lẫn các tính năng định dạng tóm tắt của lldb đều không hiển thị bất kỳ loại tiêu chuẩn nào (std :: string, std :: vector, v.v.) với tính năng in đẹp. Viết một máy in đẹp cho các loại này là rất không tầm thường do sự phức tạp của chúng. (Ví dụ: std :: string là phức tạp đáng kể trong libC++.)Làm thế nào tôi có thể nhận được hiển thị biến hợp lý khi sử dụng libC++ trong Xcode 4.3.1?

Làm thế nào để các nhà phát triển khác có được màn hình biến phong phú cho các loại STL trong tình huống này? Hoặc là không ai khác sử dụng libC++ với Xcode/lldb chưa?

Trả lời

0

Tính năng này hoạt động chính xác trong Xcode 4.4. Giải pháp tốt nhất cho người dùng Xcode 4.3 đơn giản là cập nhật Xcode.

4

W ell có hỗ trợ trong kho lưu trữ lldb. Đây là những gì tôi đã làm:

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

(Tôi đã sửa đổi 160.855) Trong vỏ LLĐB của Xcode bạn hơn có thể làm:

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

Sau đó định dạng LLĐB std :: vector, std :: bản đồ, std :: string và std :: bản đồ độc đáo hơn:

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

Tôi đã thử nghiệm điều này với Xcode 4.4. Nên làm việc tương tự với Xcode 4.3

Bạn có thể đặt lệnh trong tệp .lldbinit init của mình. Ngay cả Xcode sau đó sẽ hiển thị các cấu trúc được định dạng độc đáo.

+0

Trong Xcode 4.3.3, khi tôi thử ở trên, ở bước thứ hai ("nhập tập lệnh ...") lldb shell trả lời với thông báo lỗi kết thúc: "ImportError: Không có mô-đun có tên formatters.Logger. " Tôi không biết lldb đủ tốt để giải thích điều đó. Nó có thể là một vấn đề với 4.3? – OldPeculier

+0

Tôi nghĩ rằng đối với 4.3.3 bạn cần một phiên bản cũ của tập lệnh. Nhưng tôi không biết sự đảo ngược trong lldb svn hoạt động với Xcode 4.3. – plaisthos

+0

Upvote mặc dù đây không phải là câu trả lời "tốt nhất" nữa, bởi vì nó rất hữu ích cho các loại tùy chỉnh nói chung. –

Các vấn đề liên quan