2010-02-24 32 views
6

Tôi rất muốn tìm hiểu làm thế nào để gỡ lỗi Eclipse eclipse. Quay lại thời gian khi tôi đang sử dụng VS cho phát triển .NET, tôi có thể đính kèm VS vào một quá trình bất cứ lúc nào và bắt đầu theo dõi sự cố. Tôi hy vọng sẽ có một cái gì đó tương tự với nhật thực, nhưng là một người mới đến thế giới Java, tôi không biết về điều đó.Debug eclipse IDE chính nó

Nhật thực của tôi gần đây thường treo khi tôi chạy nó cùng với iBUS (trên Ubuntu 9.10). Tôi hy vọng rằng tôi có thể tìm hiểu những gì thực sự treo nhật thực của tôi và tránh điều đó (Hãy tưởng tượng nhật thực của bạn treo và tất cả các tập tin mở của bạn đã bị đóng. Nó chỉ khiến tôi phát điên).

Trả lời

9

Chỉnh sửa tập tin eclipse.ini bạn một thêm dòng sau vào phía dưới (dưới -vmargs):

-Xdebug 
-Xnoagent 
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000 

Sau đó, trong một Eclipse của cùng một phiên bản, bạn có thể nhập các plugin bạn đang quan tâm đến việc gỡ lỗi. Tệp -> Nhập ... -> Phát triển trình cắm -> Trình cắm và phân đoạn. Nhập từ nền tảng hoạt động và nhập dưới dạng "Dự án với thư mục nguồn", trên tab tiếp theo, hãy chọn các plugin bạn quan tâm.

Đặt điểm ngắt khi thích hợp.

Sau đó tạo trong Cấu hình gỡ lỗi, tạo một "Ứng dụng Java từ xa" mới. localhost, cổng 8000. Thêm các dự án Java trên tab nguồn và gỡ lỗi.

+0

Woot Woot đây là thứ tôi đang tìm kiếm –

2

Một điều bạn có thể làm với bất kỳ ứng dụng Java nào để xem điều gì đang xảy ra ngay bây giờ là gửi số kill -QUIT. Điều này sẽ làm cho JVM đổ các dấu vết ngăn xếp cho tất cả các chuỗi của nó thành stdout. Làm điều này ba lần với một giây ở giữa và bạn có thể thấy những chủ đề không di chuyển dọc theo độc đáo.

Một điều khác cần thử là đính kèm JConsole vào quy trình đang chạy.

+0

Xin chào, bạn có thể chỉ cho tôi cách gửi 'kill - QUIT' không? –

+0

Bạn nói bạn đang sử dụng Ubuntu, vì vậy: 1) tìm id quá trình, có thể sử dụng ps auxw. 2) từ trình bao 'kill -QUIT ' – Thilo

1

Quay lại thời gian khi tôi đang sử dụng VS để phát triển .NET, tôi có thể đính kèm VS vào quy trình bất kỳ lúc nào và bắt đầu theo dõi sự cố.

Gỡ lỗi từ xa cũng có thể có trong Java với Java Platform Debugger Architecture (JPDA), bạn chỉ cần khởi động ứng dụng mà bạn muốn gỡ lỗi với chức năng gỡ lỗi từ xa được bật. Dưới đây là an article cho biết cách thực hiện việc này và cách định cấu hình Eclipse để gỡ lỗi ứng dụng xóa.

Lưu ý rằng bắt đầu từ Java 5, bạn nên chọn tùy chọn -agentlib:jdwp qua các tùy chọn -Xdebug-Xrunjdwp như được giải thích trong Sun VM Invocation Options.

Cập nhật: Eclipse một ứng dụng Java để chúng ta có thể để thêm các tùy chọn nhắc đến trong bài viết ở eclipse.ini. Không bao giờ thử điều đó mặc dù (tôi đã bỏ lỡ một thực tế là bạn muốn gỡ lỗi Eclipse chính nó).

+0

Bài viết cho tôi biết về việc gỡ lỗi tệp jar. Nhưng tôi thấy nhật thực được (giống như?) Một tập tin thực thi tự nhiên. Làm thế nào tôi có thể nói nhật thực để xuất bản thông báo gỡ lỗi vào một cổng? –

0

Về cơ bản có hai cách gỡ lỗi một ứng dụng Java (ví dụ: Eclipse). Bạn có thể sử dụng JConsole, nhưng nó sẽ không cung cấp cho bạn rất nhiều chi tiết. Để đính kèm JConsole, bạn phải bật gỡ lỗi từ xa; điều này cần một đối số JVM mà bạn có thể viết vào tệp eclipse.ini ngay bên cạnh tệp thực thi Eclipse.

Một tùy chọn khác là khởi động bàn làm việc thời gian chạy từ Eclipse: được sử dụng để kiểm tra các trình cắm thêm của riêng bạn, nhưng khi các trình cắm thêm của Eclipse giống nhau, có thể bắt đầu một phiên gỡ lỗi với một ứng dụng Eclipse. Để thực hiện điều này, bạn cần ít nhất một trình cắm thêm trong không gian làm việc của bạn (ví dụ: tạo dự án plugin thế giới hello mới) và sau đó bạn có thể gỡ lỗi này như một ứng dụng Eclipse.

2

a thread about finding cause of a freezing Eclipse.

Một trong các giải pháp gợi ý khởi động Eclipse với tùy chọn -consolelog. Điều này có thể hữu ích cho việc xem nhanh những gì đang diễn ra (trước khi thực hiện gỡ lỗi thực tế).

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