2013-03-02 10 views
6

Tôi muốn biết liệu có bất kỳ IDE hoặc Plugin Eclipse nào hỗ trợ gỡ lỗi chế độ hỗn hợp hay không. Khi tôi tìm kiếm cụm từ hỗn hợp, tìm thấy nhiều tham chiếu gỡ lỗi các ngôn ngữ VM cùng với mã gốc.Gỡ lỗi Java với mã byte

Nhưng tôi đề cập đến một tính năng tương tự với một ngôn ngữ được biên dịch như C, trong đó người dùng có thể nhìn thấy cả hai dòng nguồn C cùng với đường dây tương ứng và sẽ có thể bước ngay cả ở cấp độ lắp ráp . (Xin vui lòng tha Nếu tôi đã mắc sai lầm danh pháp bằng cách gọi các tính năng như chế độ hỗn hợp)

Nói cách khác Tôi đang tìm kiếm một tính năng sau khi gỡ lỗi java:

  1. Khả năng mã nguồn java và mã byte tương ứng trong chương trình thực hiện
  2. Khả năng để xem JVM thanh ghi PC và toán hạng ngăn xếp
  3. Khả năng xem cấu trúc dữ liệu cụ thể khác JVM (ví dụ hồ liên tục)

Điều này là để hiểu cách mã nguồn Java ánh xạ tới mã byte và cách các cấu trúc dữ liệu liên quan đến JVM khác nhau bị ảnh hưởng khi bước vào.

+0

Bạn không cần trình gỡ rối để hiểu cách mã nguồn Java ánh xạ tới mã byte. Chỉ cần sử dụng 'javap'. –

+0

Câu hỏi hay! Với trình gỡ lỗi gdb hoặc MSVS, bạn có thể gỡ lỗi ở cấp độ lắp ráp cũng như ở cấp độ ngôn ngữ cấp cao. Tôi muốn được tò mò nếu có bất kỳ cách nào để làm một cái gì đó tương tự từ một IDE Java. Dưới đây là một vài gợi ý: [Làm thế nào để gỡ lỗi Java biên dịch trong Eclipse] (http://stackoverflow.com/questions/1905446/how-to-debug-compiled-java-code-in-eclipse), và [Có một debugger/disassembler cho Java?] (http://stackoverflow.com/questions/2539614/is-there-a-disassembler-debugger-for-java-ala-ollydbg-softice-for-assembler) – paulsm4

+0

Nó không chỉ là vấn đề các IDE và plugin. Một tính năng như vậy sẽ yêu cầu sự hỗ trợ thân mật từ chính JVM. Tôi cho rằng một giải pháp thay thế là sử dụng triển khai JVM tùy chỉnh. – Antimony

Trả lời

0

Bạn không cần trình gỡ lỗi để hiểu cách mã Java ánh xạ tới mã gốc đã biên dịch. Bạn có thể sử dụng cờ 01MJVM. Xem thông tin về chế độ trên đó trong Stephen Colebourne's blog post và các chi tiết khác trong Kris Mok reply to that post.

Bạn cũng có thể tìm thấy HotSpot Internals Wiki hữu ích.

+1

Tôi tin rằng OP muốn gỡ lỗi ở cấp độ bytecode, không phải mã gốc. – Antimony

+0

Tôi đọc OP muốn hiểu cách mã nguồn Java ánh xạ tới các mã byte và cách các cấu trúc dữ liệu liên quan đến JVM khác nhau bị ảnh hưởng như thế nào. –

1

Tôi là nhà phát triển DSL và sắp gặp phải sự cố tương tự này một số lần.

Công cụ duy nhất tôi đã tìm thấy là các công cụ Dr. Garbage.

Hiện tại, chúng dường như không được duy trì tốt nhất, nhưng chúng hoạt động với các phiên bản nhật thực thích hợp.