【问题标题】:How to do Remote Debugging in JamVM?如何在 JamVM 中进行远程调试?
【发布时间】:2014-01-28 07:28:11
【问题描述】:

我有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 上找到了this 的问题,没有答案。

所以我想我是被搞砸了,除非有人知道,所以这个......

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

【问题讨论】:

    标签: java remote-debugging jamvm


    【解决方案1】:

    简单的答案是“不”。

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

    我检查了JamVM sources,但没有隐藏的魔法。 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 debugging",我不知道其他任何方法。

    【讨论】:

    • 非常感谢 - 这几乎也是我得出的结论(在我的 PC 上调试并希望它在设备上的行为相同。当它没有插入日志语句时,直到我想通出为什么)。不过,关于详细设置的好提示,我没想过这样做 - 可能已经保存了一些日志语句!因为我无法想象一个更好的答案,我认为 +1 和接受的答案是给你的。
    猜你喜欢
    • 2016-06-15
    • 2011-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多