调试远程Java应用程序时,我无法检查eclipse上的变量。可能是什么原因。
EDITED: 我无法检查任何变量。检查器迷你窗口中显示的消息是“变量名称无法解析”。当我用测试代码在本地运行时,我能够看到内容。
答案 0 :(得分:8)
绝对确定部署到远程服务器的类已使用调试信息进行编译。
答案 1 :(得分:2)
检查您是否已连接到远程应用程序。
如果您的应用程序有多个线程,则可能是没有选择任何线程,在这种情况下 - 选择调试器停止的线程。
如果调试器没有停止 - 设置一个断点。
答案 2 :(得分:2)
在我的情况下,我通过Maven编译项目,编译器插件使用debug = false。这就是问题!
答案 3 :(得分:1)
所有变量还是只是一些?可能有几个原因:
该课程没有可用的调试信息。在本地调试相同的代码时,您不会看到变量。
也许Eclipse中存在错误。你检查了错误控制台吗?
我不确定VM的版本是否有任何区别。但是你应该尝试在两边使用相同的VM来确保。
答案 4 :(得分:1)
在Eclipse中调试时,您可以通过两种视图查看值。首先是表达式视图。在“表达式”视图中,您可以看到指示要“观察”的字段的值。其次是“价值观”观点。在“值”视图中,您可以查看正在逐步执行的方法中的字段值,如果使用调试令牌编译类,或者如果未使用调试编译类,则可以查看传入的参数值。
如果您看到“无法解析变量名称”之类的内容,则可能是您正在使用“表达式”视图,而不是“值”视图。
答案 5 :(得分:1)
我最近遇到了同样的问题并检查了所有类都是使用调试信息编译的,并且它们是。
我发现问题是本地来源有点过时了。我调试的代码的来源在两个版本之间没有变化,但问题仍在发生。 一旦我从Subversion更新并在本地重建,问题就解决了。
答案 6 :(得分:0)
背后可能有很多可能的原因。 你在'适当的背景下'吗?如果您的调试器位于一个上下文或堆栈帧,并且您正在尝试检查不在该范围内的变量,那么您将无法检查它们。
答案 7 :(得分:0)
切换到使用maven构建后,我遇到了这个问题。为了解决这个问题,我将标签添加到pom.xml中的compilerArguments标签。找到maven compiler-plugin标签并对其进行修改,使其看起来如下所示,您想要添加的新标签是空标签!!:
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<compilerArguments>
<source>1.8</source>
<target>1.8</target>
<g></g>
</compilerArguments>
</configuration>
</plugin>