java - 如何在JamVM中进行远程调试?

标签 java remote-debugging jamvm

我有jamvm版本 1.5.4 (java 版本 1.5.0),我没有任何升级或更改它的选择(实际上,我认为无论如何这是最新版本)。

我非常希望将远程调试器附加到我编写的一些旧代码上,所以我的第一个想法是这个咒语:

jamvm -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4000,suspend=n ...

遗憾的是那里没有骰子(-Xdebug-Xrunjdwp 都未被识别)。

所以我快速执行了 jamvm -helpjamvm -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/

相关文章:

java - 使用 Apache Camel Blueprint - 需要在容器内和独立状态下保留属性

virtual-machine - 将 VM 的端口号映射到命名管道

java.io.IOException : Permission denied with Wake on Lan 异常

java - 在后台安全地长时间运行 java 进程

java - 在while循环中构建Flux对象

java - 我怎样才能仅引用一个确实存在的对象?

java - 使用 Regex/Split() 有效分割 <endpoint1>,<endpoint2> (?)

c - 未命中断点 - CLion 完全远程调试 - MakeFile - GDB

ios - gdb 远程返回错误 e08

C/Posix 问题