在eclipse中调试java应用程序时,我在两种情况下收到“源代码未找到”错误:
中的文件
这些文件在那里,但是eclipse不会进入它们,而是显示一个"attach source“按钮
我尝试了附加(打开一个定义变量的对话框?!)eclipse确实跳转到了该文件,但是调试器无法检查那里的任何变量。另外,手动附加每个依赖项的源代码也是不实际的,因为在我的例子中有数千个依赖项文件。
我是eclipse\java的新手,所以解释一下为什么会发生这种情况+如何解决这个问题将会有很大帮助!
发布于 2011-05-31 02:08:24
Eclipse调试与程序实际加载的类一起工作。
您描述的症状听起来像是在项目中找不到有问题的类,而是在您正在处理的项目之前没有找到调试信息的分发jar中。
这可能有几个原因,但请看一下显示此行为的类的位置(查看导航窗格以识别它)。您很可能需要更改项目的构建路径,以避免使用此jar,而让JVM使用该项目。
编辑:请注意,从2018年起,使用像Maven这样的构建框架是很常见的,其中构建路径由m2e插件管理,因此这个问题应该比提出问题时要少得多。如果您使用Maven和m2e,请确保启用首选项/ Maven / "Download Artifact“,或者右键单击项目Maven / "Download Sources”。
发布于 2014-04-08 18:42:03
配置Eclipse IDE只需3个步骤:
注意:更新源查找路径后,您必须停止并重新启动调试会话。否则,缺少源的文件将继续显示“缺少源”。
编辑源查找选择Edit Source Lookup...命令以打开“源路径”对话框,该对话框允许您对选定调试目标的源查找路径进行更改。
重要提示:在执行完最后一步后,重新启动。
发布于 2011-05-31 06:22:17
症状完美地描述了当找到的类没有关联(或分配)源时的情况。
JDK
从项目中加载的
但是,如果Eclipse仍然建议您附加source,即使我正确地设置了我的类及其源代码:
这几乎总是意味着Eclipse从与预期不同的位置找到类。检查您的源代码查找路径,看看它可能从哪里获取错误的类。根据您的调查结果更新路径。
当命中断点时,Eclipse根本找不到任何东西:
当您的源代码查找路径不包含当前在运行时加载的类时,会发生这种情况。即使类在工作区中,它对于启动配置也是不可见的,因为Eclipse严格遵循源代码查找路径,并且只附加当前调试的项目的依赖项。
一个例外是PDE中的调试包。在这种情况下,因为运行时是由多个项目组成的,这些项目不必声明彼此之间的依赖关系,所以Eclipse将自动在工作区中找到该类,即使它在源代码查找路径中不可用。
当我命中断点时,我看不到变量,或者它只是打开了源代码,但没有选择断点行:
这意味着在运行时,JVM或类本身都没有必要的调试信息。每次编译类时,都可以附加调试信息。为了减少类的存储空间,有时会省略这些信息,这使得调试这类代码变得很痛苦。您唯一的机会是尝试在启用调试的情况下重新编译。
Eclipse源代码查看器显示的行与实际执行的行不同:
它有时会显示也执行了空格。这意味着您的源代码与您的运行时版本的类不匹配。即使你认为这是不可能的,但它是可能的,所以请确保你设置了正确的来源。或者您的运行时与您的最新更改相匹配,这取决于您试图做什么。
https://stackoverflow.com/questions/6174550
复制相似问题