Eclipse 调试:远程调试时找不到源
Posted
技术标签:
【中文标题】Eclipse 调试:远程调试时找不到源【英文标题】:Eclipse Debug: Source Not Found while remote debugging 【发布时间】:2011-12-04 17:59:57 【问题描述】:在我的 Java eclipse 项目中,当我进行远程调试时,即使源文件 jar 正确映射到库文件,eclipse 也不会进入导入的库文件的类文件。
相反,它给了我一个“Source Not Found”错误。 但是当我在 eclipse 中编辑同一个类时,我可以控制单击一个类或方法名,它会将我带到正确的库类文件。
谁能告诉我我做错了什么?
我正在使用 Tomcat 6 和最新的 Eclipse Java EE。
【问题讨论】:
【参考方案1】:这就是它对我的工作方式。这是在 Eclipse 氧气上做的
-
转到调试配置,然后转到源选项卡
点击添加
选择 Java 库。点击确定
选择 Web 应用程序库并单击下一步
在下一个屏幕中选择您所在的项目/应用程序
调试。
点击完成
这对我来说就像一个魅力
【讨论】:
【参考方案2】:使用 Eclipse 版本 Oxygen.2 (2017),接受的答案对我不起作用。以下过程成功。
使用Xdebug
和Xrunjdwp
开关启动要调试的应用程序。
cd "C:\Program Files\Test_742\Test 7.4"
test_app.exe -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8500
在 Eclipse 中创建一个新工作区。
使用 File -> New -> Java Project 创建一个新的 Java 项目。
将要调试的Jar的源代码复制到新项目的src文件夹中。我发现有必要确保将源代码的完整文件夹层次结构复制到我的源文件夹中。
对我来说,这意味着将 \com\test... 复制到我的 src 文件夹中。
这会将所有源代码放在构建路径中。
将所有依赖项 JAR 复制到项目中。我创建了一个名为 myJARs 的新文件夹。
刷新包资源管理器以查看新的 myJARs 文件夹。
通过打开文件 -> 属性 -> Java 构建路径 -> 库(选项卡)将依赖项 JAR 添加到构建路径,然后单击添加 JAR...
将每个依赖项 JAR 添加到列表中,然后单击应用并关闭。这会将 JAR 添加到引用的库中。
配置调试会话。单击运行 -> 调试配置 -> 远程 Java 应用程序。我设置了Connection Type = Standard
。
将 Host 配置为指向运行 JAR 的机器,并将端口配置为在命令行开关的 address
部分中指定的端口(在我的示例中为 8500)。
请注意,在 Source 选项卡上,源文件和依赖项 JAR 都存在。
点击应用,然后点击调试。
点击Window -> Perspective -> Open Perspective -> Debug查看调试透视图。
在源代码中放置断点。
【讨论】:
【参考方案3】:如果您使用连接到子项目的父项目,请按照以下步骤操作:
使用“Debug Cofigurations”源选项卡或“Edit Source LookUp path”选项附加运行代码的源。
注意:您需要附加内部项目的 src 文件夹而不是 target 才能使其正常工作(查看下面的屏幕截图)。
例如
eclipse Oxygen 更新(2018 年 2 月):
附加 Java 项目(子项目)也很有效;例如:
【讨论】:
【参考方案4】:在“调试配置”->“远程 Java 应用程序”->选项卡“连接”->“项目”下检查您选择了正确的项目。
【讨论】:
【参考方案5】:我遇到了类似的问题。原来我错过了 CentOS 上的开发包。
在我的特殊情况下,下面的 yum 语句解决了这个问题。
yum install java-1.7.0-openjdk-devel
【讨论】:
【参考方案6】:我遇到了同样的问题,并通过 eclipse 中的以下步骤解决了。
-
转到 Eclipse 选项卡中的服务器选项卡
右键单击服务器并单击添加和删除项目
选择/添加要调试的项目 EAR
完成后 - 以调试模式启动服务器
应该按照上述步骤解决,因为它为我解决了:)
【讨论】:
【参考方案7】:在这种情况下,只需按照以下步骤操作:
-
转到运行 → 调试配置
选择正在调试的远程应用程序配置。
选择名为'Source'的第二个标签
现在在此处明确添加包含源代码的文件夹/项目。
【讨论】:
我做到了。但它仍然给了我相同的“找不到源”,在它下面,它给出了“编辑源查找路径”按钮。 还有一个复选框(请原谅我,因为我不确定)其中包含重复的文件/路径。也尝试检查它是否为真,看看它是否有效。 我也有同样的问题,但是勾选后还是不行,我可以在debug前景中看到le vaules,但是找不到源,你能帮帮我吗? 使用 java -agentlib:jdwp=transport=dt_socket,server=y,address=8000 org.iforge.aectann.DebugMe 选项启动 java 应用程序而不是 java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y suspend=y -jar stockTradingGUI.jar options 依赖.class文件的源文件存放在哪里?【参考方案8】:正如 Saury 所说,正确设置调试配置。在远程调试时,开发人员经常在创建新配置时选择了错误的项目。确认您选择了要调试的项目,并且它对应于应用程序容器中部署的 WAR/EAR/JAR 的版本。
【讨论】:
【参考方案9】:在项目的 Java 构建路径中,在 sources 选项卡下,检查您的类路径是否在包含列表中。如果它在排除列表下,请将其从那里删除。
【讨论】:
以上是关于Eclipse 调试:远程调试时找不到源的主要内容,如果未能解决你的问题,请参考以下文章
请教大神们,我在eclipse 安装NODE.JS调试环境时候,添加软件源网址后,啥都不出来。这是为啥阿?
无法使用 JBoss Web 2.1.4 windows 和 eclipse 设置远程调试