JVM快照供以后调试

时间:2015-11-27 12:32:43

标签: java debugging jvm dump snapshot

有没有办法如何捕获Java应用程序(或整个JVM)的状态以供以后调试(替代本机可执行文件的核心转储)?

我知道堆转储和线程转储,但这些不允许真正检查应用程序状态:获取所有线程的所有堆栈帧的所有可用变量的值。

使用案例:我使用的应用程序因某些异常而崩溃。使用快照我可以将调试器附加到应用程序,设置异常断点并将JVM暂停到相同的有趣状态,创建快照并将其发送给开发人员进行检查。

到目前为止我发现了:

  • JSR 326: Post mortem JVM Diagnostics API

    陈述:未完成,休眠

  • gcore + jsadebugd + jdb

    $ gcore <pid>
    Saved corefile core.<pid>
    $ jsadebugd /path/to/executable/java core.<pid>
    
    # from other terminal
    $ jdb -connect sun.jvm.hotspot.jdi.SADebugServerAttachingConnector:debugServerName=localhost
    

    这几乎就是这样。但它无法与IDE(如Eclipse或IDEA)一起使用。

0 个答案:

没有答案