诡异的JVM Crash之EXCEPTION_STACK_OVERFLOW
关于JVM的一个常识是:如果对象被意外地持有很容易造成内存泄漏,而如果同时又在不停地生成新对象,就有很大的机率造成内存溢出。通常情况下,这种溢出会导致JVM抛出OutOfMemoryError,然后JVM挂起。
可是来试试下面的代码,真是让人有点诧异,分别在JDK1.4、JDK5、JDK6上都表现一致。
package crash;
public class JVMCrashTest {
public static void main(String[] args) {
try {
testCrash();
} catch (Throwable t) {
t.printStackTrace();
System.out.println("catch an exception! I'm dead!");
}
}
/**
* JVM挂掉,core dump
*/
static void testCrash() {
Object[] o = null;
int line = 0;
while (true) {
o = new Object[] { o };
line++;
if (line % 1000 == 0) {
System.out.println(line);
}
}
}
}
没有机会抓异常,JVM直接Crash。Windows上会有hs_err日志产生,好一个EXCEPTION_STACK_OVERFLOW。Linux上面连日志都没有,直接segment fault。
分享到:
相关推荐
《NXP LIN 2.2 Stack:构建与理解》 NXP LIN 2.2 Stack 是一种基于Freescale Semiconductor(现为NXP Semiconductors)技术的 LIN(Local Interconnect Network)通信协议栈,它专为汽车电子系统中的低速通信设计。...
在汇编语言的学习中,"STACK1_SEGMENT_STACK.rar_STACK1 SEGMENT_stack segment stack"这个标题提到了两个关键概念:栈段(Stack Segment)和栈(Stack)。栈在计算机科学中扮演着至关重要的角色,尤其是在汇编语言...
### IRP与IO_STACK_LOCATION详解 #### 一、概述 在Windows驱动开发中,IRP (I/O Request Packet) 和 IO_STACK_LOCATION 是两个至关重要的概念。它们之间存在着密切的关系,通常被视为一个整体来理解。本篇文章旨在...
"FSL_LIN_2.x_STACK_4.5.9.rar_FSL lin_lin_lin 2.2_lin 源码_飞思卡尔 lin" 是一个与飞思卡尔LIN(Local Interconnect Network)协议栈相关的压缩包,主要用于LIN应用的开发和学习。LIN是一种低成本的串行通信协议...
标题“udp_ip_stack3.zip”指的是一个包含Verilog代码实现的UDP/IP协议栈的压缩文件。这个实现已经过硬件板级验证,对于百兆以太网功能完备,而在千兆以太网环境下则需要对设计进行适当的约束优化。在本文中,我们将...
本资源包"**FSL_LIN_2.x_STACK_Package_4.5.9.7z**"专门针对NXP系列芯片,提供了LIN通信的例程和相关工具,是进行LIN通信开发和学习的宝贵资料。 一、NXP芯片与LIN通信 NXP半导体,前身为飞利浦半导体,是一家全球...
NXP 的 LIN 协议栈,之前一直用的 4.5.7 的版本,使用过程中有好几个问题都是手动修复的。最近在官网上看见了 4.6.6 的版本,下载测试了一遍,发现之前手动修复的几个问题都已经 OK 了。
《Zigbee网络层详解——基于Z_Stack 1.4.2的NWK解析》 Zigbee网络层(NWK),是Zigbee通信协议栈中的关键部分,主要负责设备之间的网络通信和管理。在Z_Stack 1.4.2版本中,这一层的实现对于理解Zigbee网络的运作至...
软件漏洞分析入门 相关附件 stack_overflow_exec
《TCP/IP协议栈详解——基于tcpip_stack_v1_2_TCP,IP_TCP_IP_udpmac_UDP_tcp源码分析》 TCP/IP协议栈是互联网通信的基础,它定义了数据在网络中的传输方式。本篇文章将深入剖析名为"tcpip_stack_v1_2_TCP,IP_TCP_IP...
首先,这本书的标题是《Pro_MERN_Stack_Full_Stack_Web_App_Development》,其中"MERN"指的是一个流行的全栈Web开发技术栈,它包括了MongoDB(一种NoSQL数据库)、Express.js(一个轻量级Web应用框架)、React(一种...
可扩展_网络_Stack_for_FPGAs_(TCPIP,_RoCEv2)_fpga-Network-Stack_Scalable_Network_Stack_for_FPGAs_(TCPIP,_RoCEv2)_fpga-network-stackfpga-Network-Stack_Scalable_Network_Stack_for_FPGAs_(TCPIP,_RoCEv2)...
在C++编程中,栈(Stack)是一种非常重要的数据结构,它遵循“后进先出”(LIFO,Last In First Out)的原则。栈在许多实际应用中都有广泛的应用,如函数调用、表达式求值等。在这个“Class_Stack.zip_stack的c++...
HART_STACK参数描述是HART_STACK协议栈接口程序的核心组件之一,它提供了一系列的参数设置接口,用户可以通过这些接口来设置HART设备的参数,例如设备的工作模式、通信速率、数据格式等。 HART_STACK设备初始化函数...
《WndRiver_Network_Stack_VxWorks6_Programmers_Guide》是一套全面介绍VxWorks操作系统中网络栈编程的指南,分为三个卷,涵盖了Vol.1至Vol.3的内容,版本为6.6。这套指南是针对Wind River公司开发的VxWorks实时操作...
linux架构图。...The Linux Storage Stack Diagramversion 4.0, 2015-06-01outlines the Linux storage stack as of Kernel version 4.0 SCSI low level drivers megaraid_sas aacraid qla2xxx ...
TI公司提供2015年最新基于ZigBee无线智能家居开发协议(Z_Stack_Home_1.2.2.exe) 由于只能上传小于60MB文件,将140MB原文件分割3个部分上传,分别为: Z_Stack_Home_1.2.2.exe.part1.rar Z_Stack_Home_1.2.2.exe.part...
软件漏洞分析入门 中的文件 stack_overflow_ret
例如,在`sysctl.conf`中添加`kernel.stack_size = 102400`(表示100KB)后,重启系统生效。 值得注意的是,线程栈大小的设置应根据实际应用的需求来确定。对于计算密集型任务,可能需要较大的栈空间以容纳更多的...