如何在 Java 中重现 EXCEPTION_STACK_OVERFLOW 错误
Posted
技术标签:
【中文标题】如何在 Java 中重现 EXCEPTION_STACK_OVERFLOW 错误【英文标题】:How can I reproduce EXCEPTION_STACK_OVERFLOW error in Java 【发布时间】:2011-10-01 04:52:53 【问题描述】:。
PS:我不是在谈论优雅地关闭 JVM 的 Java 中的 ***Error 错误。我说的是 error.log 中的 EXCEPTION_STACK_OVERFLOW 会导致 JVM 崩溃。
【问题讨论】:
请仔细检查你的PS,我猜在“am”和“talking”之间有一个很小的not... 目前我发现的大多数EXCEPTION_STACK_OVERFLOW
错误都发生在JVM 之外的本机代码中...如果内部 有一个错误,那将是一个错误并需要修复。
不是确切的答案,但***.com/questions/65200/how-do-you-crash-a-jvm有一些人
【参考方案1】:
到目前为止,我发现的大多数 EXCEPTION_STACK_OVERFLOW
错误都发生在 JVM 之外的本机代码中。 JVM 内部崩溃值得报告错误,并将得到修复。还是您需要(未知)漏洞利用?
因此,最简单且最可靠的方法是编写一个包含一些导致 JVM 崩溃的代码的本机库,然后使用 JNI 调用它。
(一般的答案,我其实不知道该怎么做。不能只用java代码来完成;))
【讨论】:
+1。我只能做+1,但想做+100以确认我的理解。大多数其他人都提到了 ***Error!【参考方案2】:public static void ***()
***();
调用它,然后享受吧:D
【讨论】:
这会导致 ***Error 而不是 JVM 崩溃!【参考方案3】:吹栈:
public static void main(String[] args)
main(null);
吹堆:
public static void main(String[] args)
List<String> list = new ArrayList<String>();
while(true) list.add(new String("boom"));
【讨论】:
以上都不会导致JVM崩溃。第一个会导致 ***Error,第二个会导致 OutOfMemoryError。以上是关于如何在 Java 中重现 EXCEPTION_STACK_OVERFLOW 错误的主要内容,如果未能解决你的问题,请参考以下文章