当前位置: 首页 > 面试题库 >

调试工具挂在Java应用程序中

公良昕
2023-03-14
问题内容

我有一个Java应用程序,一半时间挂起,另一半JVM崩溃。有没有我可以用来查看发生了什么的工具,它会挂起和/或崩溃?我正在使用CentOS 5.6


问题答案:

有两种不同的情况。

应用程序崩溃:
是OOM吗?NPE?有什么例外?如果发生了jvm崩溃,您将看到hs_err_.log(http://java.sun.com/j2se/1.5/pdf/jdk50_ts_guide.pdf)

查看文件,您可能会发现自己的JNI是否导致崩溃或JVM错误。

应用程序挂起: 我将从visualvm或jstat开始(两者都是JDK的一部分)。您可以查看线程的当前状态,并检查是否存在任何应用程序错误。

其他 有助于查看内部进程的 linux工具

  • lsof:您可以检查进程是否打开了太多文件
  • strace:从系统调用的角度查看当前活动。

Oracle工具文档提供了简洁明了的清单。它还链接了特定于操作系统的工具



 类似资料:
  • 问题内容: 我有一个在Linux机器上运行的Java应用程序。我使用以下命令运行Java应用程序: 我已经在此Linux机器上为TCP打开了端口4000。我使用Windows XP计算机上的eclipse,并尝试连接到此应用程序。我也在Windows中打开了端口。 这两台机器都在LAN上,但是我似乎无法将调试器连接到Java应用程序。我究竟做错了什么? 问题答案: 我注意到有些人在这里剪切和粘贴该

  • 问题内容: 我是Web自动化测试工具的新手。我想自动化我的网络功能测试。 请建议我一些网络自动测试工具。我想使用Java编写自动化测试工具。 我访问了以下站点,以选择一个好的工具,但是由于我不知道,很难为我选择一个合适的工具。 http://java-source.net/open- source/web-testing-tools 谁能建议我一个很好的网络测试工具? 问题答案: 对于Web测试,

  • 主要内容:GWT 应用程序调试 介绍, GWT 应用程序调试 示例GWT 应用程序调试 介绍 GWT 提供了出色的调试客户端和服务器端代码的能力。 在开发模式下,GWT 应用程序基于 Java 代码,不会转换为 JavaScript。 当应用程序在开发模式下运行时,Java 虚拟机 (JVM) 实际上将应用程序代码作为编译的 Java 字节码执行,使用 GWT 功能连接到浏览器窗口。 GWT 使用基于浏览器的插件连接到 JVM。 因此,开发人员可以自由地使用任何

  • 如何在使用调试配置时自动禁用应用程序洞察并仅在发布时启用它? 是否可以在不创建另一个仅用于调试的检测密钥的情况下执行此操作? 语句散布在整个代码中,将它们封闭在调试预处理器检查中不是理想的解决方案。 我当前的解决方案是将文件的设置为,这样它就不会复制到项目的输出目录中,但这不是一个可以根据活动生成配置自动完成的过程。 有一个开发人员模式,但需要手动更改(如果有条件地设置配置文件是可能的,那么清空i

  • 用于Chrome远程调试协议的替代传输。 进程: 主进程​ Chrome调试工具在JavaScript运行时具有特殊绑定,允许与页面交互并对其进行检测。 1 const {BrowserWindow} = require('electron') 2 let win = new BrowserWindow() 3 ​ 4 try { 5 win.webContents.debugger.attach