2009-07-23 23 views
9

Tôi không thể kiểm tra các biến trên nhật thực khi gỡ lỗi ứng dụng Java từ xa. Điều gì có thể là lý do.Không thể kiểm tra các biến trên eclipse

CHỈNH SỬA: Tôi không thể kiểm tra bất kỳ biến nào. Thông báo được hiển thị trong cửa sổ thu nhỏ của thanh tra là 'tên biến không thể được giải quyết'. Tôi có thể xem nội dung khi chạy nội dung bằng mã thử nghiệm.

+0

Hãy cho chúng tôi biết thêm. Điều gì xảy ra khi bạn thử kiểm tra biến? –

+0

Vui lòng xem phần đã chỉnh sửa –

+0

Bạn đang sử dụng phiên bản Eclipse nào? –

Trả lời

1

Tất cả các biến hoặc chỉ một số biến? Có thể có một vài lý do cho việc này:

  • Không có thông tin gỡ lỗi cho lớp đó. Bạn sẽ không thấy các biến khi gỡ lỗi cùng một mã cục bộ.

  • Có thể có lỗi trong Eclipse. Bạn đã kiểm tra bảng điều khiển lỗi chưa?

  • Tôi không chắc liệu phiên bản của VM có tạo sự khác biệt nào không. Nhưng bạn nên cố gắng sử dụng cùng một máy ảo trên cả hai mặt để đảm bảo.

+0

Nếu ứng dụng Java cho thấy khả năng gỡ lỗi từ xa thì không cần thiết cho một lớp để triển khai giao diện * Serializable *. –

+0

Hey Aaron, gỡ lỗi từ xa sẽ làm việc với tất cả các lớp Serializable hay không. –

+0

Đã sửa lỗi. Không có tùy chọn nào để yêu cầu Java quên dữ liệu gỡ lỗi trong các tệp lớp? Tôi kiểm tra các tài liệu nhưng không thể tìm thấy nó. –

2

Kiểm tra xem bạn đã kết nối với ứng dụng từ xa chưa.

Nếu ứng dụng của bạn có nhiều chủ đề, nó có thể là không có chủ đề được chọn, trong trường hợp này - chọn các chủ đề mà debugger dừng ở

Nếu debugger đã không dừng lại -. Thiết lập một breakpoint.

8

Hoàn toàn chắc chắn rằng các lớp được triển khai đến máy chủ từ xa đã được biên dịch với thông tin gỡ lỗi.  

1

Có hai chế độ xem mà bạn có thể thấy giá trị trong khi gỡ lỗi trong Eclipse. Đầu tiên là chế độ xem Biểu thức. Trong chế độ xem Biểu thức, bạn có thể thấy giá trị cho các trường mà bạn cho biết bạn muốn 'xem'. Thứ hai là chế độ xem 'Giá trị'. Trong khung nhìn Values, bạn có thể thấy các giá trị cho các trường trong một phương thức mà bạn đang bước qua, nếu lớp được biên dịch với các mã thông báo gỡ lỗi hoặc các giá trị của các đối số được truyền vào nếu lớp đó không được biên dịch với gỡ rối.

Nếu bạn thấy thứ gì đó như 'Tên biến không thể được giải quyết' có thể là bạn đang sử dụng chế độ xem Biểu thức, không phải là chế độ xem Giá trị.

+2

'Giá trị' hoặc 'Biến'? – KillBill

2

Trong trường hợp của tôi, tôi đã biên dịch dự án thông qua Maven với debug = false cho trình biên dịch-plugin. Đây là vấn đề!

1

Gần đây tôi đã gặp phải sự cố tương tự và đã kiểm tra xem tất cả các lớp đã được biên dịch với thông tin gỡ lỗi hay chưa.

Tôi phát hiện thấy vấn đề là nguồn địa phương đã hơi lỗi thời. Nguồn của mã tôi đã gỡ lỗi đã không thay đổi giữa hai phiên bản nhưng vấn đề vẫn còn xảy ra. Khi tôi cập nhật từ Subversion và xây dựng lại cục bộ, sự cố đã được giải quyết.

+0

Tôi đã sửa đổi nguồn trong khi gỡ lỗi và lưu nó. Từ lần sau, tôi không được kiểm tra các giá trị. Hoàn nguyên các thay đổi đã giải quyết được vấn đề – manikanta

0

Có thể có nhiều lý do có thể xảy ra sau. Bạn có đang ở trong 'ngữ cảnh phù hợp' không? Nếu trình gỡ lỗi của bạn ở một ngữ cảnh hoặc khung ngăn xếp và bạn đang cố gắng kiểm tra các biến không nằm trong phạm vi đó thì bạn sẽ không thể kiểm tra chúng.

0

Tôi gặp sự cố này sau khi chuyển sang xây dựng bằng maven.Để làm tròn vấn đề, tôi đã thêm thẻ vào thẻ compilerArguments trong tệp pom.xml. Tìm thẻ plugin trình biên dịch maven và sửa đổi nó để trông giống như dưới đây, thẻ mới bạn muốn thêm vào là thẻ trống !!:

 <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>2.3.2</version> 
      <configuration> 
       <compilerArguments> 
        <source>1.8</source> 
        <target>1.8</target> 
        <g></g> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
Các vấn đề liên quan