【发布时间】:2015-01-19 16:41:21
【问题描述】:
我正在尝试通过 IntelliJ 调试在 WebSphere Liberty Profile 上运行的远程应用程序。
我可以在我自己的代码中设置断点——这些断点会在页边空白处显示一个复选标记并且可以正常工作。
我遇到的具体问题是java.io.ObjectInputStream。当我在流上调用readObject() 时,它会引发异常。不过,我想知道更多关于我的流的哪个特定部分是坏的,所以我右键单击readObject() 并选择Go To > Implementation,并尝试在此方法中设置一些断点。
当我运行调试器时,这些断点通过断点显示为 X,而不是复选标记,并且此消息显示在工具提示中:
Warning: No executable code found at line 603 in class java.io.ObjectInputStream
但那一行显然有这段代码:
return Class.forName(name, false, latestUserDefinedLoader());
所以我真的很困惑为什么会收到此错误消息。
任何关于我如何在java.io.ObjectInputStream 中设置断点或在抛出异常之前看到一些被反序列化的值的建议将不胜感激。
【问题讨论】:
-
IntelliJ 和 Liberty 中的 JVM 版本可能不同。
-
@Gas:他们运行不同的操作系统...... Liberty 在 RHEL 上,但 IntelliJ 在我的本地 Windows 机器上......这会导致问题吗?
-
在两台机器上运行
java -version。
标签: java debugging intellij-idea websphere-liberty