2012-01-20 10 views
13

Tôi là người mới sử dụng Eclipse.Làm cách nào để in giá trị hiện tại của đối tượng Java trong bảng điều khiển gỡ lỗi trong Eclipse?

Trong mục tiêu-C, tôi có thể in giá trị của một đối tượng trong cửa sổ bảng điều khiển với lệnh này.

po nameOfValue 

Có thể gdb lệnh. Tôi đang sử dụng Eclipse bây giờ, điều gì tương đương với điều này trong Eclipse?

P.S. Tôi đang gỡ lỗi một ứng dụng Java.

Trả lời

20

Eclipse có rất khả năng gỡ lỗi mạnh mẽ - nhiều hơn rất nhiều so với Objective C.

Trước hết, trong khi gỡ lỗi bạn có thể xem các giá trị của tất cả các biến trong cửa sổ biến. Ngoài ra, ở phần dưới của cửa sổ Biến bạn có thể gõ Java tùy ý, chọn nó, nhấp chuột phải, sau đó chọn Kiểm tra hoặc Thực thi. Bạn thực sự có thể thay đổi giá trị của các biến trong chương trình theo cách này, trong khi nó đang chạy.

Bạn có thể thực hiện khá nhiều điều tương tự trong ngăn nguồn của mình. Đánh dấu một biến, nhấp chuột phải và chọn Kiểm tra biến đó. Bạn cũng có thể gõ vào một biểu thức ngẫu nhiên và thực hiện nó. Bạn cũng có thể đặt đồng hồ trên các biến (mà tôi tin rằng bạn có thể làm trong Mục tiêu-C), hoặc trên các biểu thức.

Có chế độ xem Biểu thức không được hiển thị theo mặc định (trên menu của bạn, chọn Window-> Views-> Expressions, trong khi trong phối cảnh Debug). Nó cho phép bạn thêm các biểu thức Java tùy ý (hợp lệ) và các giá trị của các biểu thức đó sẽ được theo dõi trong suốt thời gian tồn tại của phiên gỡ lỗi của bạn, rất tiện lợi. Nhờ @Baldrick cho lời nhắc nhở của công cụ tuyệt vời này.

+3

+1 hay không. được đánh giá khi bạn đạt đến điểm ngắt và ở mọi bước gỡ lỗi – Baldrick

+0

@B aldrick - hoàn toàn quên về khung nhìn Expression, một công cụ tuyệt vời khác. – Perception

+2

Tôi muốn giao diện điều khiển dòng lệnh vì tôi không muốn sử dụng chuột khi đánh giá biểu thức vì thường biểu thức gỡ lỗi sẽ phức tạp. Và cũng có thể, nhắm vào biểu tượng nhỏ bằng chuột khó hơn rất nhiều so với sử dụng bàn phím. – Eonil

4
System.out.println(nameOfValue); 
+1

Tôi không thể tìm thấy cửa sổ mà tôi có thể nhập vào: ( – Eonil

+0

Bạn có thể đặt cửa sổ trong cửa sổ biểu thức – MichaelStoner

+0

Mã trên sẽ đi vào chế độ xem "Hiển thị" vì đó là lệnh không phải là biểu thức. –

0

Ghi đè chặn cho đối tượng/lớp đó. Sau đó System.out.println (objectVariable).

1

Nhấp vào Trình đơn cửa sổ chọn hiển thị loại chế độ xem và hiển thị chế độ xem đó. Trong chế độ xem này, bạn có thể nhập java như System.out.println(objectName); khi ứng dụng đã tạm dừng trong quá trình gỡ lỗi.

+0

't in bất cứ điều gì ... – Eonil

+0

Nó sẽ in nó trong giao diện điều khiển hoặc cung cấp cho bạn một lỗi trong cửa sổ hiển thị nếu mã không thể chạy – James

+0

Là đối tượng của bạn cố gắng in một chuỗi, nếu như vậy chuỗi có thể được trống thử một dòng khác sau khi in một số văn bản và xem liệu có một khoảng trống giữa đầu ra bàn điều khiển cuối cùng và văn bản bạn đã in – James

2

Tôi không biết bất kỳ tùy chọn in nào của toàn bộ trạng thái đối tượng trong bảng điều khiển trong khi gỡ lỗi.

Nhưng bạn có thể ghi đè phương thức toString() đối tượng của mình và nối chuỗi đó với các giá trị của từng trường hoặc bất kỳ thứ gì bạn muốn in cho đối tượng đó. Sau đó, khi gọi một nơi nào đó trong mã System.out.print(myObject); nó sẽ in kết quả của phương pháp toString() mà bạn đã ghi đè.