【问题标题】:How do I step into JDK source code when debugging remotely in Eclipse在Eclipse中远程调试时如何进入JDK源代码
【发布时间】:2013-08-07 23:33:20
【问题描述】:

当我使用 Eclipse Kepler 进行远程调试时,我不知道如何进入“JDK”类。

只要我正在调试由 Eclipse 启动的 Java 应用程序(我称之为“本地”),我就可以毫无问题地进入“JDK”类(如 java.lang.Runtime)。但是,当我尝试在 localhost 上将相同的应用程序(使用 InstallAnywhere LaunchAnywhere 启动器启动)作为远程 Java 应用程序进行调试时,我无法进入 JDK 类(我将其称为“远程”)。

在这两种情况下(本地和远程),我都可以进入我的课程。但是当我在远程调试时在 JDK 类中调用方法时,Eclipse 将 Step Into 视为 Step Over。我在本地和远程调试会话中使用相同的 JDK。

这是远程调试的固有限制,还是我缺少配置设置?

【问题讨论】:

    标签: java eclipse debugging


    【解决方案1】:

    检查以下内容:

    • 确保Source Lookup Path 在调试会话期间使用Edit Source Lookup 对话框包含rt.jar
    • 行号属性包括你正在远程调试的编译类,如果你用eclipse编译它们,请检查this
    • 确保您正在调试的远程应用程序使用 JDK 而不是 JRE,因为 JRE 不包含调试信息

    【讨论】:

    • 虽然我确实尝试过,但它没有用,我认为没有必要。在正确配置的 JDK(Window > Preferences > Java > Installed JREs > Edit..)中,src.zip 将被配置为 rt.jar 的源附件。关于行号,不是这样,因为我仍然可以单步执行并为我的代码使用断点。
    • @David “远程”应用程序是由上述启动器启动的,它可能正在使用没有调试信息的 JRE
    • Katona,这就是问题所在——当我修改 LAX 文件以告诉 LaunchAnywhere 启动器使用 Eclipse 用于调试它的相同 JRE 时,它起作用了。如果您编辑答案(或添加新答案),我会投票并接受它。谢谢!
    • @David 我在我的回答中包含了这个,并保留了其他建议
    • @David:我编辑了第三点。我仍然认为问题在于 JRE 不包含调试所需的信息。请参阅this answer 如何检查类之间的差异。
    【解决方案2】:

    您将在 JDK 文件夹中找到 src.zip,请将其作为源选项卡中的外部存档添加到调试配置中

    【讨论】:

      【解决方案3】:

      window->preference->java->install->点击add->standard VM->next: JRE HOWM :JDK 路径(不是 JRE 路径!)

      如果 rt.jar 中没有源 你应该在 rt.jar source Attachment 上配置源路径。 就是这样

      【讨论】:

        猜你喜欢
        • 2012-05-16
        • 2020-12-18
        • 2013-01-21
        • 2014-03-16
        • 2012-10-31
        • 2011-12-04
        • 2011-06-24
        • 2012-07-25
        • 2021-02-22
        相关资源
        最近更新 更多