我有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
,并进行了一些阅读。没有任何建议可以附加远程调试器。
最后,我转向我们的老朋友Googler先生,并在SourceForge上找到this问题而没有回答。
所以我猜我被打破了,除非有人不知道,因此......
有什么办法可以用JamVM进行远程调试吗?
答案 0 :(得分:1)
简单回答是“不”。
我实际上想要对运行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"之外我不知道任何其他方式。