2012-01-16 27 views
12

Trong Visual Studio, có thể trong các phiên gỡ lỗi để nhảy đến dòng được chọn bởi con trỏ và thực hiện dòng đó. Sau khi nhảy đến dòng đó, bạn có thể tiếp tục gỡ lỗi từ dòng mà bạn đã nhảy tới. Tính năng này có tồn tại trên thế giới Java/Eclipse không?Trong quá trình gỡ rối trong Eclipse, có thể nhảy lên một dòng và thực hiện nó trong khi gỡ lỗi không?

Ví dụ:

foo1();

foo2();

foo3();

trả về true;

Trong Visual Studio, bạn có thể ngắt foo1(), đặt con trỏ trên foo3(), thực thi foo3() mà không thực thi foo2. Hơn nữa, khi trình gỡ lỗi được dừng lại trên "trả về true", tôi có thể đặt con trỏ trên foo1 và thực thi lại foo1. Hơn nữa, tôi có thể tiếp tục thực hiện các dòng mã tùy ý thông qua các hành động này.

+2

Tính năng này dường như không tồn tại. http://stackoverflow.com/questions/4864917/is-it-possible-to-go-back-in-java-eclipse-debugger-like-dragging-the-arrow-in – MedicineMan

+0

Thú vị. Điều gì sẽ xảy ra nếu bạn yêu cầu nó nhảy tới một hàng và các dòng bị bỏ qua đã khai báo các biến được sử dụng bởi dòng bạn đã nhảy tới? –

+1

nếu nó là một lớp giá trị, biến sẽ nằm trong phạm vi nhưng sẽ có giá trị mặc định. Nếu kiểu tham chiếu, nó sẽ được khởi tạo thành null. – MedicineMan

Trả lời

1

Có. Đặt một điểm ngắt trên dòng, nhấn F8, đợi chương trình thực hiện cho đến khi dòng này, và nhấn F6 để đi đến dòng tiếp theo, hoặc F5 để bước vào dòng hiện tại.

EDIT:

Khi sợi bị tạm dừng trong trình gỡ lỗi, bạn cũng có thể chọn một số mã Runnable, nhấp chuột phải và chọn "Display" (Ctll-Shift-D) hoặc "Execute" (Ctrl- U). Bạn cũng có thể sử dụng dạng xem Hiển thị để nhập bất kỳ câu lệnh nào, chọn nó, và thực hiện hoặc hiển thị nó.

+6

Đây là một đáp ứng hữu ích vì nó ghi lại một số tính năng thú vị của IDE Eclipse. Tuy nhiên, nó không hoạt động như Visual Studio IDE. Tại thời điểm này, câu trả lời cho câu hỏi này là "Không, tính năng này dường như không tồn tại". – MedicineMan

+0

Tôi không thực sự thấy nó khác với những gì Visual Studio làm. Bạn có thể rõ ràng hơn không? Bạn đã thử nó trong Eclipse chưa? Bạn đặt một breakpoint trên 'foo1()' và 'return true', trong khi tạm dừng trên foo1, bạn chọn' foo3() 'và nhấn Ctrl-U, bạn nhấn F8 để đến khi trả về true, sau đó bạn chọn' foo1() 'và nhấn Ctrl-U. –

+1

Có, tôi đã thử điều này khi bạn mô tả. Eclipse không thân thiện với người dùng nếu các biến được định nghĩa là một phần của các dòng được thực hiện.Hãy xem xét: int startHere = 0; MyClass me = new MyClass(); foo (tôi); foo2 (tôi); nếu bạn vi phạm dòng đầu tiên và thực thi dòng thứ ba, Eclipse phàn nàn rằng tôi không xác định. Hơn nữa, mũi tên đã không chuyển sang dòng thứ ba, nó vẫn trỏ đến dòng 1. Mặc dù bạn đã quản lý để thực thi dòng 3, việc thực hiện đã không nhảy lên dòng 3 và mặc dù bạn có thể tiếp tục làm nổi bật các dòng và thực hiện theo đó, trải nghiệm là clunky. – MedicineMan

8

Nhấp vào dòng bạn muốn chạy đến và nhấn Ctrl + R và nó sẽ chạy đến dòng đó thay vì đặt hàng tấn điểm ngắt. Ngoài ra, bạn có thể sử dụng F8 để chạy đến điểm ngắt tiếp theo của bạn hoặc F6 để chạy đến dòng tiếp theo.

+2

+1 cho Ctrl-R mà tôi không biết. –

+0

Xin lỗi, tôi đã chỉnh sửa câu trả lời của bạn thay vì chỉnh sửa của tôi. –

+0

Ctrl + r là một tính năng tuyệt vời, bạn không bao giờ ngừng học – Voo

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