2009-02-10 35 views
27

Trong khi gỡ lỗi chương trình trong XCode tôi có một số biến số CFStringRef trỏ đến các chuỗi có độ dài khoảng 200 ký tự.Trình gỡ lỗi XCode: hiển thị các chuỗi dài

Trong trình gỡ lỗi, nó chỉ hiển thị giá trị của các chuỗi này đến một độ dài nhất định và sau đó chỉ cần bỏ qua chúng. Tôi thực sự muốn thấy giá trị đầy đủ của các chuỗi.

Có một số tùy chọn tôi có thể định cấu hình để không chấm dứt chúng ở độ dài tùy ý không?

+1

Có thực sự không có cách nào để làm cho giao diện hiển thị phiên bản phi elided của chuỗi? –

+0

Đáng chú ý là trình gỡ lỗi hiển thị chuỗi * với ký tự thoát *. Khi chuỗi được in trong bảng điều khiển, các ký tự thoát sẽ không được bao gồm. "\" mã \ "" so với "mã". Giới hạn 100 ký tự này rất khó chịu vì nó ngăn cản bạn sao chép, nói, một chuỗi JSON dài và sau đó dán ngay lập tức chuỗi đó (các ký tự thoát), dưới dạng biến chuỗi thử nghiệm trong mã của bạn. – pkamb

Trả lời

32

Trong gỡ lỗi giao diện điều khiển, bạn có thể nhận được giá trị chuỗi bằng cách làm một cái gì đó như:

(gdb) print (void)CFShow(myCFString)

hay:

(gdb) po (NSString*)myCFString

Either of those will display the entire string's contents to the debugging console. It's probably the easiest way to deal with large, variable-length strings or data structures of any kind.

For more information, the print lệnh trong trình gỡ lỗi cơ bản bãi một số cấu trúc dữ liệu vào bảng điều khiển. Bạn cũng có thể gọi bất kỳ chức năng hoặc bất cứ điều gì, nhưng kể từ khi in không có quyền truy cập vào các khai báo chức năng, bạn phải chắc chắn rằng bạn cung cấp cho họ ngầm (như trong ví dụ trên), hoặc lệnh in sẽ khiếu nại.

po là lối tắt cho print-object và giống như in ngoại trừ đối tượng Mục tiêu-C. Về cơ bản, nó hoạt động như sau:

(gdb) print (const char *)[[theObject debugDescription] UTF8String]

This is really useful for examining things like NSData đối tượng và NSArray/NSDictionary đối tượng.

Để biết thêm thông tin về các chủ đề gỡ lỗi, xem Technical Note TN2124 - Mac OS X Debugging Magic và (từ bảng điều khiển trình gỡ lỗi), bạn cũng có thể gửi lệnh trợ giúp.

+0

Cảm ơn. Loại lame rằng điều này không được xây dựng trong các quan điểm XCode, nhưng ít nhất tôi có thể nhìn thấy những gì tôi đang nhìn vào lúc này. –

+0

Xem chuỗi trong trình gỡ rối, các ký tự thoát được bao gồm. Chúng không được in trên bàn điều khiển bằng 'po'. Bạn có biết cách nào để bảo vệ các ký tự thoát trong chuỗi không? – pkamb

+0

Đối với tôi, biến thể in không chặn chuỗi "rút ngắn", vì vậy tôi vẫn không thể nhìn thấy toàn bộ chuỗi. – pojo

0

Nếu bạn đang soạn thảo C++ Dự án trong xcode chỉ cần sử dụng lệnh này

po string_name

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