当前位置: 首页 > article >正文

JVM崩溃时产生的文件 hs_err.pid.log

hs_err.pid.log

hs_err.pid.log:当jvm崩溃时,会生成一个hs_err_pid.log文件,并且把它存放到程序目录下,可以通过该文件来定位导致jvm崩溃的原因。

jvm崩溃,是由jvm自身的bug或者本地方法执行错误引起的,本地方法就是被native修饰的方法。

要注意:

  • 内存溢出通常不会导致jvm崩溃

  • 纯粹的java代码通常不会导致jvm崩溃,不过也有例外,比如Unsafe类,它可以直接操作内存,如果操作不当,也会导致jvm崩溃。

案例:这段代码中使用Unsafe类访问了非法内存地址,这种内存操作将导致jvm崩溃

public static void main(String[] args) throws Exception {
    // 通过反射获取Unsafe实例
    Field field = Unsafe.class.getDeclaredField("theUnsafe");
    field.setAccessible(true);
    Unsafe unsafe = (Unsafe) field.get(null);

    // 尝试向受保护的0地址写入数据,触发操作系统级别的内存保护异常,
    // JVM无法处理这种致命错误,直接崩溃退出,崩溃日志位置取决于JVM工作目录
    unsafe.putAddress(0, 0xBAD); // 这将导致访问违例
}

生成的文件:

在这里插入图片描述

文件内容讲解

第一部分:jvm基础信息,简述了jvm崩溃的原因,还包括一些版本和配置信息

在这里插入图片描述

内容讲解:

  • SIGSEGV 是信号量:

    • SIGSEGV:表示jvm崩溃时正在执行JNI(java native interface)的代码
    • EXCEPTION_ACCESS_VIOLATION:表示jvm崩溃是正在执行jvm自身的代码
    • EXCEPTION_STACK_OVERFLOW:表示jvm崩溃是栈溢出导致的错误,这往往是应用程序中存在深层递归导致的
  • pc:程序计数器的值

  • pid:进程号

  • tid:线程号

  • Problamatic frame:问题帧

    • C:帧类型为本地帧
    • j:java帧
    • V:虚拟机帧
    • v:虚拟机生成的存根栈帧
    • J:其它类型的帧,包括编译后的java帧

第二部分:thread,线程信息,描述了程序崩溃时正在执行的线程,可以看到线程的栈信息

在这里插入图片描述
在这里插入图片描述

内容讲解:

  • 线程类型:
    • JavaThread:java线程
    • VMThread:jvm的内部线程

第三部分:process,进程信息 // 内容最多

第四部分:system:系统信息


http://www.kler.cn/a/584441.html

相关文章:

  • 【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案
  • 3D匹配算法简述
  • Stable Diffusion F.1模型全面解析
  • 【MyBatis Plus 逻辑删除详解】
  • YOLOv8模型改进 第三十二讲 添加Transformer Self Attention TSA 解决CNN过程中特征丢失的问题
  • 问deepseek: OpenFOAM并行分区后,是如何实现ldumatrix矩阵向量乘法计算逻辑的?
  • 基于PyTorch的深度学习4——使用numpy实现机器学习vs使用Tensor及Antograd实现机器学习
  • LuaJIT 学习(2)—— 使用 FFI 库的几个例子
  • SpringBoot3+Lombok如何配置logback输出日志到文件
  • 深入解析 React 最新特性:革新、应用与最佳实践
  • 若依框架二次开发——若依微服务打包时如何分离 JAR 包和资源文件
  • 基于传统算法的半导体晶圆缺陷检测原理及代码(二)
  • Spring中的配置文件参数化与类型转换器实现详解
  • Maven 构建 项目测试
  • Qt常用控件之垂直布局QVBoxLayout
  • Leetcode9-回文数
  • 解决:外部调用存储过程时突然变慢,但是在sql server运行很快
  • ChromeOS 134 版本更新
  • 专业视角:set 和 multiset的原理与应用解析
  • (2025|ICLR|厦大华为,LoSA,基于表示互信息的动态层级稀疏率,基于重构误差的秩分配)LLM 的动态低秩稀疏自适应