Java 程序的事后调试信息快照中应该包含哪些内容?

发布于 2024-11-24 16:03:57 字数 411 浏览 0 评论 0原文

我们遇到的情况是,我们希望能够创建一个 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

饮惑 2024-12-01 16:03:57

您可以一路捕获完整的堆转储吗?我知道您使用的是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文