Java 程序的事后调试信息快照中应该包含哪些内容?
我们遇到的情况是,我们希望能够创建一个 zip 文件,其中包含有关当前正在运行的 Java 程序(可能正在崩溃)的尽可能多的信息,以便进行事后取证分析。我们目前部署到 Java 5,但 Java 6 的功能也很有趣。
到目前为止,我想到了:
- 以编程方式生成的线程转储。这在 Java 6 中似乎效果更好
- 。过去 X 分钟记录的日志事件。我们目前使用 logback 或 java.util.logging。
- 一些序列化的对象。
- 外部环境 - 所有系统属性。
JVM 信息还有什么用处?
是否可以以通用的方式遍历调用堆栈并查看参数? (或者这是否需要 JVMTI 或同等功能)。它是 IBM JVM,因此我们无法使用 jvisualvm 和 Attach API。
We have a situation where we would like to be able to create a zip file containing as much information as possible about a currently running Java program (which may be on its way down) to allow for post-mortem forensic analysis. We currently deploy to Java 5 but Java 6 features are interesting too.
So far I've thought of:
- A programmatically generated thread dump. This appears to work better in Java 6.
- The logged log events for the last X minutes. We currently use logback or java.util.logging.
- Some serialized objects.
- External environment - all system properties.
What else would be useful of JVM information?
Would it be possible in a generic way to walk the call stacks and see the arguments? (or does this require JVMTI or equivalent). It is a IBM JVM so we cannot use jvisualvm and the Attach API.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以一路捕获完整的堆转储吗?我知道您使用的是 IBM JVM,但是 此页面 似乎来表明有办法。
You could go all the way and capture a full heap dump? I realize you are on an IBM JVM, but this page seems to indicate there is a way.