MAC编译的JDK执行出错: [libjvm.dylib+0x482a49] PerfDataManager::destroy()+0xab

简介: MAC编译的JDK执行出错: [libjvm.dylib+0x482a49] PerfDataManager::destroy()+0xab

兴冲冲的编译完成之后,运行直接出错:

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGILL (0x4) at pc=0x000000010f682a49, pid=19068, tid=0x0000000000002803
#
# JRE version: OpenJDK Runtime Environment (8.0) (build 1.8.0-internal-taishansoft_2022_02_09_10_00-b00)
# Java VM: OpenJDK 64-Bit Server VM (25.71-b00 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# V  [libjvm.dylib+0x482a49]  PerfDataManager::destroy()+0xab
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/taishansoft/openjdk8-u252/bin/hs_err_pid19068.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.java.com/bugreport/crash.jsp
#
[error occurred during error reporting , id 0x4]


按照提示,修改代码:

hotspot/src/share/vm/runtime/perfData.cpp


void PerfDataManager::destroy() {
  if (_all == NULL)
    // destroy already called, or initialization never happened
    return;
  for (int index = 0; index < _all->length(); index++) {
    PerfData* p = _all->at(index);
    //!!! 就是这一句。
    //delete p;
  }
  delete(_all);
  delete(_sampled);
  delete(_constants);
  _all = NULL;
  _sampled = NULL;
  _constants = NULL;
}
目录
相关文章
|
3月前
|
Java Linux
java基础(3)安装好JDK后使用javac.exe编译java文件、java.exe运行编译好的类
本文介绍了如何在安装JDK后使用`javac.exe`编译Java文件,以及使用`java.exe`运行编译好的类文件。涵盖了JDK的安装、环境变量配置、编写Java程序、使用命令行编译和运行程序的步骤,并提供了解决中文乱码的方法。
76 2
|
4月前
|
Oracle Java 关系型数据库
Mac安装JDK1.8
Mac安装JDK1.8
764 4
|
4月前
|
安全 Java API
JDK版本特性问题之在aone编译机器上未安装相应的jdk导致发布编译报错,如何解决
JDK版本特性问题之在aone编译机器上未安装相应的jdk导致发布编译报错,如何解决
|
6月前
|
Java 编译器
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
Java健壮性 Java可移植性 JDK, JRE, JVM三者关系 Java的加载与执行原理 javac编译与JAVA_HOME环境变量介绍 Java中的注释与缩进 main方法的args参数
58 1
|
6月前
|
Oracle Java 关系型数据库
Java入门——开发环境、入门程序(搭建Java开发环境、安装JDK 验证、JDK、编写代码、编译代码、运行代码)
Java入门——开发环境、入门程序(搭建Java开发环境、安装JDK 验证、JDK、编写代码、编译代码、运行代码)
69 3
|
7月前
|
数据库管理
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
317 0
|
7月前
|
Java
JDK环境下利用记事本对java文件进行运行编译
JDK环境下利用记事本对java文件进行运行编译
88 0
|
7月前
|
Java
916.【Java】javap 查看 class 文件的jdk编译版本
916.【Java】javap 查看 class 文件的jdk编译版本
183 2
|
7月前
|
Kubernetes NoSQL Java
ChaosBlade常见问题之在mac下编译报checksum mismatch的错误如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
|
7月前
|
IDE Java 开发工具
JDK 11中的源文件直接运行:从编译到执行的一步之遥
在JDK 11中,Java开发人员可以更轻松地将源代码直接转换为可执行程序,而无需经历传统的编译和打包过程。这一新功能简化了开发流程,提高了开发效率,为快速原型设计和即时应用程序部署提供了便利。本文将详细介绍JDK 11中源文件直接运行的技术细节、优势和适用场景。