我有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上发现了这个问题,没有答案。
所以我想我已经被扫描了,除非有人另外知道,否则这是...
有什么办法可以使用JAMVM进行远程调试?
简单的答案是"否"。
我实际上想在运行JAMVM的目标硬件(ARM)上进行分析,因为它的执行速度明显慢于运行Oracle Hotspot VM的桌面。
我已经检查了JAMVM来源,但是没有隐藏的魔法。JAMVM的构建非常紧凑,因此增加了对远程调试,分析,JMX和Whate的支持。
您能做的就是使用-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,PROFILERS,DEBUGGERS的全部功能在桌面上运行它。
如果由于某些硬件特定的代码而无法在桌面上运行,但不幸的是,除了进行丑陋的" printf debugging"之外,我别无其他方式。