2012-12-18 22 views
6

Tôi đang sử dụng Xcode 4.5 trên máy Mac với trình mô phỏng iOS để viết ứng dụng iPhone. Khi tôi nhấn một breakpoint trong trình gỡ lỗi, tôi sử dụng "Auto" để xem các biến. Vấn đề là các đối tượng ban đầu được gập lại, và tôi phải mở rộng từng đối tượng để xem giá trị của nó. Đó là ok, nhưng nó là tẻ nhạt và khó đọc. Có cách nào để CUSTOMIZE cách dữ liệu được trình bày trong trình gỡ rối không?Cách cải thiện hiển thị các biến là đối tượng trong trình gỡ lỗi xcode 4.5 (noob)

Tôi đã xem LLDB tutorial và tôi đã xem "chuỗi tóm tắt tùy chỉnh" trong the post bởi Quinn Taylor, nhưng tôi không hiểu. Anh ấy phải đã sử dụng một phiên bản cũ của xcode.

Về cơ bản, tôi có một đối tượng như

lớp Vec3 { công cộng: float x, y, z; };

và trong cửa sổ gỡ lỗi tôi thấy

pos (Vec3) 

và những gì tôi thà thấy là

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

mà không cần phải mở rộng biến. Có ai biết làm thế nào tôi có thể làm điều đó?

Trả lời

2

Nếu Vec3 là lớp của bạn (hoặc thứ gì đó bạn có thể phân lớp), hãy ghi đè description. Điều đó cho phép bạn định dạng nội dung xuất hiện khi bạn nói po pos trong bảng điều khiển.

Để nhận được fancier, tham khảo trang này:

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

Bạn có thể nói

type summary add --summary-string 

theo sau là một mô tả chuỗi về cách bạn muốn loại biến được hiển thị.

Nếu bạn thực sự muốn tham gia vào trò chơi, bạn có thể viết trình định dạng của riêng mình; thảo luận tốt trong hai video WWDC 2012 về gỡ lỗi và LLDB. Nhưng bạn phải viết một kịch bản Python để làm điều đó, vì vậy tôi đã đưa ra một giải pháp "noob".

+0

Có, tôi có thể sửa đổi Vec3. Thông báo "description" hoạt động ok cho Objective-C, nhưng không hoạt động với C++. Và nó chỉ hoạt động trong cửa sổ giao diện điều khiển. Tôi đã hy vọng có thể tùy chỉnh cửa sổ xem. Trong MS Studio, bạn có thể làm điều đó rất độc đáo với tệp "autoexp.dat". –

+0

Xin chào! Tôi vừa tìm thấy một [trang web tuyệt vời] thực sự (http://disanji.net/iOS_Doc/#documentation/DeveloperTools/Conceptual/XcodeDebugging/220-Viewing_Variables_and_Memory/variables_and_memory.html) cho biết cách bạn có thể tạo các trình định dạng tùy chỉnh cho các cấu trúc (như CGRect) bằng cách sửa đổi 'CustomDataViews.plist' ... Thật không may Apple đã gỡ bỏ nó ... ít nhất, tôi không thể tìm thấy nó ở bất cứ đâu. –

+0

"Tôi đã hy vọng có thể tùy chỉnh cửa sổ xem", vâng, vâng, đó là những gì mà kịch bản Python dành cho. Bạn viết nó, bạn thêm nó vào tập tin ~/.lldbinit của bạn, bạn đã sẵn sàng. – matt

7

Tôi có thể làm việc này với xcode 4.5.2. Tóm lại, đây là các bước.

  1. mở hoặc tạo ~/.lldbinit sử dụng soạn thảo văn bản, và thêm dòng này

    type summary add Vec3 --summary-string "x=${var.x}, y=${var.y}, z=${var.z}" 
    
  2. restart xcode. Bây giờ khi bạn nhấn một breakpoint các Vec3 sẽ được hiển thị như,

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

Bạn có thể làm rất nhiều thứ khác trong.lldbinit như mô tả trong http://lldb.llvm.org/varformats.html

Ví dụ

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

sẽ tự động tạo ra một chuỗi tóm tắt và

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

sẽ tự động tạo ra chuỗi tóm tắt cho TẤT CẢ các loại bắt đầu bằng "Vec".

+0

Một miếng ngon hữu ích khác. Bạn có thể nhấp đúp vào biến trong cửa sổ xem và cửa sổ bật lên xuất hiện được gọi là "Đặt định dạng tóm tắt cho loại", trong đó bạn có thể tạm thời tùy chỉnh chuỗi tóm tắt của loại. Tuy nhiên, cú pháp có vẻ hơi khác so với "tóm tắt loại thêm ..." –