2009-08-21 68 views
46

Làm cách nào để tôi có thể bước qua mã nguồn JDK trong IntelliJ IDEA 7 và xem thông tin gỡ lỗi? Tôi hiện có thể nhấn điểm ngắt và bước qua mã, nhưng thông tin gỡ lỗi không có sẵn. Điều này có nghĩa là tôi không thể thấy giá trị của các biến cục bộ.Bước qua mã nguồn JDK trong IntelliJ IDEA

Tôi chỉ muốn bước qua mã nguồn của một lớp, nếu điều đó quan trọng. (Đối với những gì nó có giá trị, đó là lớp javax.swing.text.html.HTMLDocument (và tôi có một bản sao của tập tin .java tương ứng).)

Trả lời

32

Nếu bạn nhìn vào [File menu ->] Settings -> Debugger -> Bước bạn sẽ thấy một danh sách "Đừng bước vào các lớp này", có lẽ với "java. *" được liệt kê ở đó. Đó là trường hợp? Bạn có thể tắt nó ở đó.

Dường như thông tin gỡ lỗi không khả dụng. Theo số this thread:

Đáng buồn là các lớp JDK có thông tin gỡ lỗi cho các tham số và biến cục bộ bị loại bỏ.

năm trước, tôi đã đệ đơn yêu cầu rằng ý tưởng nên suy ra các thông tin cần thiết từ mã nguồn (về cơ bản chuyển đổi tên biến để chỉ số vào phương pháp var địa phương):
Debugger: Show variable information when no debug info

hãy bỏ phiếu/nhận xét.

Để giải quyết sự cố, bạn có thể biên dịch lại JDK từ các nguồn, nhưng bạn cần phải loại trừ một số lớp không có tất cả mã nguồn cần được đính kèm.

Điều thú vị là bạn có thể tải xuống beta version of Java 6u18, which has debug information in it (trong gói DEBUG).

+0

Như tôi đã đề cập trong bài ban đầu của tôi, tôi có thể nhấn breakpoint của tôi tốt trong javax. * lớp học. Vấn đề là thông tin gỡ lỗi không có sẵn. Dù sao, chỉ để chắc chắn, tôi đã làm những gì bạn đề nghị, nhưng thông tin gỡ lỗi vẫn không có sẵn. –

27

CẬP NHẬT: IntelliJ IDEA 13+ phiên bản can provide local variables information without debug info.

Các lớp Java là một phần của JDK được biên soạn mà không có thông tin gỡ lỗi cho các lý do kích thước và hiệu suất. Nếu bạn muốn gỡ lỗi thông tin trong các lớp này, bạn sẽ cần phải cài đặt một phiên bản phát triển của JDK, nơi các lớp được xây dựng với thông tin gỡ lỗi hoặc xây dựng lại các phần của JDK mà bạn muốn gỡ lỗi từ nguồn với thông tin gỡ lỗi được bật và định cấu hình JDK mới với các phiên bản của các lớp trong lọ.

This thread cung cấp hướng dẫn cách tạo lại các lớp JDK trong rt.jar từ mã nguồn bằng thông tin gỡ lỗi.

P.S. Câu hỏi này không dành riêng cho IntelliJ IDEA.

0

cài đặt - trình biên dịch - java Trình biên dịch - tùy chọn java, bạn nên chọn tùy chọn "tạo thông tin gỡ lỗi", sau đó, nó sẽ biên dịch với thông tin gỡ lỗi.

3

Cùng với thông tin "Không bước vào các lớp này", cấu hình src.jar phải được định cấu hình. Nhấp chuột phải vào dự án, chọn "Mở Cài đặt mô-đun". Trong Cài đặt nền tảng, chọn "SDK". Chọn phiên bản Java SDK bạn đang sử dụng. Chọn tab Sourcepath, nhấn nút "+" và thêm src.jar của bạn từ JDK (hoặc tải xuống nguồn riêng cho OSX JDK). Điều này sẽ cho phép bạn mở các lớp JDK và bước vào chúng trong khi gỡ lỗi.

+0

Tôi đang sử dụng Ubuntu 16.04 và OpenJDK 8. Để lấy các nguồn JDK, tôi phải cài đặt riêng gói bổ sung: 'sudo apt-get install openjdk-8-source'. Nhờ http://askubuntu.com/questions/755853/how-to-install-jdk-sources cho giải pháp. –

1

Tôi đã thực hiện việc này trên máy Mac để lấy mã nguồn Android của mình nhưng cách tiếp cận tương tự cũng phù hợp với bạn.

  • File> Cấu trúc dự án

  • chọn "SDK" dưới vBulletin Settings.

  • chọn "Android SDK"

  • chọn "SourcePath" tab

  • Pressed "+"

  • duyệt đến vị trí của mã nguồn Java của tôi

12
  1. Cài đặt JDK
  2. Thêm đường src.jar
    1. Go to: Cấu trúc dự án (Cài đặt dự án)> Nền tảng Cài đặt> SDK> Sourcepath
    2. Thêm đường dẫn đến src.jar
      • OSX dụ: /Library/Java/JavaVirtualMachines/1.6.0_45-b06-451.jdk/Contents/Home
      • của Windows Ví dụ: C: \ Program Files \ Java \ jdk1.7.0_03 (kiểm tra Chương trình (x86) cho 32-bit)
    3. Chờ một thời gian dài để lập chỉ mục!
  3. lọc Remove debugger
    1. Go to: Cài đặt> Debugger> Bước
    2. Bỏ chọn gói (s) mà bạn muốn, ví dụ javax. *
Các vấn đề liên quan