如何在 Java 中重现 EXCEPTION_STACK_OVERFLOW 错误

发布于 2024-11-19 05:30:24 字数 162 浏览 4 评论 0原文

如何在 Java 中重现 EXCEPTION_STACK_OVERFLOW 错误。

PS:我说的不是 Java 中的 StackOverflowError 错误,它会优雅地关闭 JVM。我说的是 error.log 中的 EXCEPTION_STACK_OVERFLOW 导致 JVM 崩溃。

How can I reproduce EXCEPTION_STACK_OVERFLOW error in Java.

PS: I am not talking of StackOverflowError Error in Java which gracefully shuts the JVM. I am talking of EXCEPTION_STACK_OVERFLOW in error.log which cause JVM to crash.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

酸甜透明夹心 2024-11-26 05:30:24

到目前为止,我发现的大多数 EXCEPTION_STACK_OVERFLOW 错误都发生在 JVM 之外的本机代码中。 JVM 内部的崩溃值得提交错误报告并将得到修复。或者您需要(未知的)漏洞利用吗?

因此,最简单、最可靠的方法是编写一个本机库,其中包含一些导致 JVM 崩溃的代码,并使用 JNI 调用它。

(一般答案,我实际上不知道如何准确地做到这一点。不能仅使用java代码来完成;))

Most EXCEPTION_STACK_OVERFLOW errors I found so far happen in native code outside the JVM. A crash inside the JVM is worth a bug report and will be fixed. Or are you in need of an (unknown) exploit?

So the easist and most reliable way would be to write a native library with some code that causes the JVM to crash and call that with JNI.

(general answer, I actually don't know how to do it exactly. Can't be done with java code only ;) )

可遇━不可求 2024-11-26 05:30:24
public static void stackoverflow()
{
     stackoverflow();
}

调用它,享受吧:D

public static void stackoverflow()
{
     stackoverflow();
}

Call it, and enjoy :D

倾城°AllureLove 2024-11-26 05:30:24

吹塑堆:

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"));
}

Blow stack:

public static void main(String[] args) {
    main(null);
}

Blow heap:

public static void main(String[] args) {
    List<String> list = new ArrayList<String>();
    while(true) list.add(new String("boom"));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文