如何使用应用程序抛出异常时记录的转储来调试生产 java?

How to debug production java using a dump recorded when app throws an exception?

我们如何调试稍后抛出异常时发生的事情?

我们有一个用 Java 编写的生产应用程序,它随机抛出一个异常,我们可以捕获并在服务器上登录。我们想对此进行调试以查看发生了什么,因为日志没有透露太多信息。

我所说的调试是指进入 Eclipse 或 IntelliJ 调试器之类的调试器,并遍历代码以了解抛出异常时发生的情况,完成将数据传递给方法和局部变量等。

所以我希望在发生这种情况时保存某种转储,然后能够在某些工具中加载该转储以在事后对其进行调试。

所以我更喜欢这样的解决方案:

我建议查看 Oracle 的 JVM Flight Recorder,它不是免费的,但正是针对这种情况。

http://www.oracle.com/technetwork/java/javaseproducts/mission-control/java-mission-control-1998576.html