2012-07-16 30 views
10

Tôi đang viết một ứng dụng iOS và tôi cần trợ giúp bằng trình gỡ lỗi Xcode được tích hợp sẵn. Giả sử tôi có một đối tượng được gọi là HomeViewController có ba thuộc tínhLàm thế nào để in ra nội dung của một tài sản bằng cách sử dụng trình sửa lỗi Xcode?

@property (nonatomic) BOOL finished; 
@property (nonatomic, strong) NSArray *myArray; 
@property (nonatomic, strong) NSString *myName; 

@synthesize finished = _finished, myArray = _myArray, myName = _myName; 

Giả sử tôi có điểm ngắt trong lớp này. Làm cách nào để xem nội dung của các thuộc tính này? Tôi đã thử những thứ như po myName, print myNameprint [self myName] nhưng tôi không thể tìm ra cách thực hiện việc này. Tôi đã thử sử dụng LLDB nhưng tôi vẫn gặp lỗi tương tự mà người này gặp phải (lldb fails to print variable values with "error: reference to 'id' is ambiguous"). Câu trả lời được chấp nhận cho câu hỏi này là, LLDB bị hỏng và tôi chỉ nên sử dụng GDB; tuy nhiên, tôi từ chối chấp nhận điều gì đó cơ bản đến mức bị phá vỡ.

Tuy nhiên, tôi cũng đã thử sử dụng GDB với các lệnh tương tự như trên; tuy nhiên, tôi không thể có được GDB để làm việc. Trợ giúp xin vui lòng

Trả lời

23

Khi bạn đặt một breakpoint, chạy và chương trình dừng lại ở breakpoint, di con trỏ lên biến/giá trị mà bạn muốn xem như thế này:

enter image description here

Bạn cũng có thể diễn ra một NSLog(@"%@", yourLabel.text); để xem nội dung của nhãn đó/loại đối tượng khác.

Một lựa chọn khác là chạy GDB trong giao diện điều khiển như thế này:

gdb 
attach <your process name> 

Và sau đó sử dụng po (in-object) lệnh để xem các giá trị của một biến như thế này:

po variableName 

Để xem giá trị của các loại nguyên thủy (int, float, long, double, char, vv), bạn chỉ có thể sử dụng whil print lệnh e đang chạy GDB trong bảng điều khiển như sau:

print yourPrimitiveVariable 

Hy vọng điều này sẽ hữu ích!

EDIT:

Với lệnh po, bạn có thể in ra giá trị của một đối tượng sử dụng cả tên thuộc tính (self.myProperty) hoặc tên Ivar (có thể _myProperty). Tôi chứng minh điều này ở đây:

enter image description here

+0

Vì vậy, nếu tôi sử dụng po, tôi có phải in mã vạch hoặc có cách in bằng tên của tài sản không?(đôi khi thuộc tính của tôi có tên khác với biến tương ứng của chúng) – Nosrettap

+0

@Nosrettap Hãy thử sử dụng tên thuộc tính và nếu nó không hoạt động, tôi sẽ cố gắng tìm cách giải quyết. – pasawaya

+0

@Nosrettap - Tôi đã thử nghiệm các lệnh 'po' và' print' và có vẻ như nó hoạt động tốt với cả thuộc tính và tên ivar. Xem cập nhật của tôi ... – pasawaya

2

Hãy thử với sau biểu hiện trong khu vực debug để in đối tượng,

p self.view.bounds.size.width 

hoặc sử dụng,

po self.view 

p - In chỉ sử dụng để in giá trị bình thường/đơn giản khi, po - Đối tượng in hoạt động giống như NSLog để in giá trị của đối tượng

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