【问题标题】:debugging in eclipse : source not found在 Eclipse 中调试:找不到源
【发布时间】:2014-02-03 05:09:32
【问题描述】:

我有一个小项目(留言簿,java appengine 文档中的谷歌示例)。 https://developers.google.com/appengine/docs/java/gettingstarted/creating 在这个小项目中,当我想逐步进行调试(F5)时遇到了问题。步骤不起作用,我在 eclipse 中收到一条消息“找不到源”,带有一个按钮“编辑源查找路径”。

似乎问题是已知的,因为我在堆栈溢出上发现了类似的帖子,但我没有找到适合我的情况的解决方案,而且解决方案有时完全不同(好吧,我保持开放的态度)。如果我阅读这篇文章,似乎类路径有问题。

在这篇文章(我找到的关于该主题的最完整的)中,我测试了很多东西。 Eclipse java debugging: source not found

例如,我在首选项>java>installed JRE 中更改了定义 但结果是一样的…… 我也尝试在此窗口中创建新的调试配置以及许多其他内容。 我需要帮助来理解和配置 Eclipse,希望不要用我的不同测试破坏我所有的 Eclipse 安装......今晚我决定安装一个新的 Eclipse 副本......但结果相同......

我有下面的conf... 日食守护者第 1 版 eclipse 3.5.1 的谷歌插件 appengine-java-sdk-1.8.8

提前感谢您的帮助

编辑 15.01.2014

代码与谷歌代码几乎相同。 在调试模式下,当我得到http://localhost:8888/guestbook 时,透视图打开,断点突出显示,如果我按 F5,我会通过按钮收到错误消息“找不到源”。

package com.example.Guestbook;
import java.io.IOException;
import javax.servlet.http.*;

public class GuestbookServlet extends HttpServlet {

    @Override
    public void doGet(HttpServletRequest req, HttpServletResponse resp)  throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world 1");
        resp.getWriter().println("Hello, world 2");
        resp.getWriter().println("Hello, world 3");

        resp.getWriter().println("breakpoint here " + this.myFunction()); // the breakpoint is here
    }


    // this method is not in the original google example
    public int myFunction(){
        int i=10;
        return i;
    }   
}

【问题讨论】:

  • 您是要从演示本身或 App Engine API 代码中单步执行代码吗?
  • 您要调试的确切代码行是什么?
  • 这取决于您尝试进入的代码行。通常对于您自己的源(应用程序项目类/方法),您应该能够介入。但是如果代码存在于框架类中,那么您很可能会看到该错误。所以请让我们知道您尝试进入哪一行代码。
  • 看上面我添加了代码...谢谢

标签: eclipse google-app-engine debugging


【解决方案1】:

我有时会触发相同的错误,但通常有办法避免它。 Eclipse 中的解决方案是使用 F6(Step Over)而不是 F5(Step Into)。您的断点可能位于调用项目外部库中代码的行上,并且该库的源代码不可用。您不想进入外部库源代码。

在您的源代码示例中,如果您无法从包含“breakpoint here”的行中断时单步执行,请尝试在包含“int i=10;”的行上添加一个额外的断点然后按 F8(恢复)。

【讨论】:

  • 非常感谢您的回答。如果我使用 F6(跳过)或 F5(步入)在“int i = 10”行上有一个断点,当我在方法 doGet 中返回时,我会在执行结束时收到相同的消息。此解决方案可能是此代码的一个很好的解决方案,因为它是一个示例,但在实际情况下,需要“步入”功能。想象一下,如果你不能在自己的课堂上使用“step into”,这是个问题,不是吗?再次感谢马丁
  • Jerome 我同意你的观点,Eclipse 有时应该进入但没有这样做。我们可以认为它是一个我们不知道如何修复的 Eclipse 错误。额外的断点和 F8 技术是一种解决方法,仅适用于 Eclipse 无法正常运行并且您想单步进入调用的方法时。不方便,但总比不工作好。
猜你喜欢
  • 2010-12-29
  • 2012-07-04
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多