我有jamvm版本 1.5.4
(java 版本 1.5.0
),我没有任何升级或更改它的选择(实际上,我认为无论如何这是最新版本)。
我非常希望将远程调试器附加到我编写的一些旧代码上,所以我的第一个想法是这个咒语:
jamvm -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n ...
遗憾的是那里没有骰子(-Xdebug
或 -Xrunjdwp
都未被识别)。
所以我快速执行了 jamvm -help
和 jamvm -X
并进行了一些阅读。没有任何迹象表明可以附加远程调试器。
最后我向我们的老 friend Googler 先生求助,发现 this SourceForge 上的问题没有答案。
所以我想我失败了,除非有人知道否则,因此......
有什么方法可以使用 JamVM 进行远程调试吗?
最佳答案
简单的答案是“否”。
我实际上想在运行 jamvm 的目标硬件 (ARM) 上进行分析,因为它的执行速度比在运行 Oracle HotSpot VM 的桌面上慢得多。
我检查了JamVM sources但没有隐藏的魔法。 JamVM 的构建非常紧凑,因此添加对远程调试、分析、JMX 等的支持会使虚拟机变得臃肿。
您可以使用 -verbose
来了解正在发生的情况。使用 :class
例如我至少能够通过监视类加载来发现巨大的性能瓶颈。
jamvm -verbose[:class|gc|jni]
:class print out information about class loading, etc.
:gc print out results of garbage collection
:jni print out native method dynamic resolution
尽管如此,由于我们的应用程序有某种薄 HAL ,我可以使用 IDE、分析器、调试器的全部功能在桌面上运行它,这就是我的建议。
如果由于某些硬件特定代码无法在桌面上运行而无法实现,不幸的是,除了做丑陋的事情之外,我不知道任何其他方法 "printf debugging" .
关于java - 如何在JamVM中进行远程调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21399355/