【问题标题】:source not found when debugging调试时找不到源
【发布时间】:2012-10-04 22:37:06
【问题描述】:

我正在使用 Eclipse IDE for Java EE Developers(Mac OS X 64 位)来调试我的两个 java 文档。我有一个Name 类,其方法名为insert。它执行但给出错误的结果。 NamesTesterName 类的测试类。

在调试过程中,当我使用 step into insert 方法时,它会跳转到一个名为 ArrayList<E>.size() 的奇怪文档,并显示 Source not found。我不知道怎么了。这是否意味着我无法进入一种方法来查看那里发生了什么?但是,如果我使用 step over,则可以很好地调试后续步骤。

有人可以帮我找出原因和解决方案吗?谢谢!

【问题讨论】:

  • 欢迎来到 SO。对于任何可以帮助您的人,您需要编辑您的帖子以包含导致问题的源代码。
  • @JimGarrison,为什么上述问题需要源代码?与您要问什么相关的源代码?
  • 它让世界变得与众不同。如果我能看到源代码,我可以准确指出他为什么要跳入ArrayList.size()

标签: java eclipse debugging


【解决方案1】:

这意味着您跳入了您的项目类路径无法访问的类定义。例如 Java JVM 源代码。 在您的情况下,也许它试图跳入 ArrayList 定义。

通过谷歌了解eclipse中的调试,步入并逐步通过

【讨论】:

    【解决方案2】:
    1. 点击Attach source
    2. 勾选External locations并点击External files
    3. 从 Program Files/java/jdk1.x/src.zip 添加src.zip

    【讨论】:

      【解决方案3】:

      您已调试到 Java 运行时代码,但您的计算机上没有安装其源代码。将来避免这种情况的最简单方法是安装完整的 Java 开发工具包 (JDK) 而不是仅安装 Java 运行时环境 (JRE),并确保 Eclipse 使用该 JDK。

      【讨论】:

      • 是的,我忘记安装 JDK。然后我下载了这个:jdk-7u7-macosx-x64.dmg 并安装了它。但似乎什么都没有改变。我该怎么办?
      【解决方案4】:

      你指向 ArrayList.size() 的方法,是jdk的ArrayList类的方法。

      首先:找不到源不是错误。 当您处于调试模式并且在调试时输入一些其 .java 文件不在类路径上的类时,找不到源。此消息仅表示,您尝试调试的代码部分、源代码不可用,因此调试器无法显示突出显示的行等。 现在要纠正这个问题,我的意思是能够在您的调试器中看到该方法,下载 jdk 的源代码(与您当前使用的版本相同),当您看到未找到源屏幕时,有一个 atrach 源按钮。选择它并选择您下载的源代码文件,然后按确定。并且 tge 屏幕将刷新该类的突出显示行。

      【讨论】:

      • 感谢您的解释。但是当我尝试修复它时,我的意思是当我看到找不到源屏幕时,我单击编辑源查找路径,并添加了我的源代码文件。但是哪里没有改变。我不知道为什么。
      • 我只看到一个可能的原因,tge 源文件不是源文件。该文件是 .java 文件吗??
      【解决方案5】:

      我认为您需要将源代码附加到库中,这将有助于调试器找到它。

      关注thread 第 16.2 节,

      希望这会对你有所帮助。

      【讨论】:

      • 兄弟没有提供完整的文档来简单回答。类似地,我们可以为这里的大多数问题提供 java doc。至少提及部分名称。我认为您要提及的是第 16.2 节。
      猜你喜欢
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2010-12-29
      • 2012-07-04
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      相关资源
      最近更新 更多