1

我有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读了一点。没有任何建议可以附加远程调试器。

最后,我求助于我们的老朋友 Mr Googler,在 SourceForge 上发现这个问题没有答案。

所以我想我被吓坏了,除非有人知道,所以这个......

有什么方法可以使用 JamVM 进行远程调试?

4

1 回答 1

1

简单的答案是“不”。

我实际上想在运行 jamvm 的目标硬件 (ARM) 上进行分析,因为它的执行速度比在我的桌面上运行 Oracle HotSpot VM 的速度要慢得多。

我检查了JamVM 的来源,但没有隐藏的魔法。JamVM 被构建得非常紧凑,因此增加了对远程调试、分析、JMX 和诸如此类的支持,这会使 VM 变得臃肿。

您可以做的是-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 调试”之外,我不知道其他任何方法。

于 2014-09-03T12:26:51.607 回答