如何使用应用程序抛出异常时记录的转储来调试生产 java?
How to debug production java using a dump recorded when app throws an exception?
我们如何调试稍后抛出异常时发生的事情?
我们有一个用 Java 编写的生产应用程序,它随机抛出一个异常,我们可以捕获并在服务器上登录。我们想对此进行调试以查看发生了什么,因为日志没有透露太多信息。
我所说的调试是指进入 Eclipse 或 IntelliJ 调试器之类的调试器,并遍历代码以了解抛出异常时发生的情况,完成将数据传递给方法和局部变量等。
所以我希望在发生这种情况时保存某种转储,然后能够在某些工具中加载该转储以在事后对其进行调试。
所以我更喜欢这样的解决方案:
- 可以从代码创建转储文件而不对我们的生产应用程序产生不利影响
- 例如,可以使用 Eclipse 调试器等 GUI 工具进行分析。
我建议查看 Oracle 的 JVM Flight Recorder,它不是免费的,但正是针对这种情况。
我们如何调试稍后抛出异常时发生的事情?
我们有一个用 Java 编写的生产应用程序,它随机抛出一个异常,我们可以捕获并在服务器上登录。我们想对此进行调试以查看发生了什么,因为日志没有透露太多信息。
我所说的调试是指进入 Eclipse 或 IntelliJ 调试器之类的调试器,并遍历代码以了解抛出异常时发生的情况,完成将数据传递给方法和局部变量等。
所以我希望在发生这种情况时保存某种转储,然后能够在某些工具中加载该转储以在事后对其进行调试。
所以我更喜欢这样的解决方案:
- 可以从代码创建转储文件而不对我们的生产应用程序产生不利影响
- 例如,可以使用 Eclipse 调试器等 GUI 工具进行分析。
我建议查看 Oracle 的 JVM Flight Recorder,它不是免费的,但正是针对这种情况。