如何重現Java中的EXCEPTION_STACK_OVERFLOW錯誤。如何在Java中重現EXCEPTION_STACK_OVERFLOW錯誤
PS:我不是在討論StackOverflowError Java中的錯誤,它正常地關閉了JVM。我說的是error.log中的EXCEPTION_STACK_OVERFLOW,它會導致JVM崩潰。
如何重現Java中的EXCEPTION_STACK_OVERFLOW錯誤。如何在Java中重現EXCEPTION_STACK_OVERFLOW錯誤
PS:我不是在討論StackOverflowError Java中的錯誤,它正常地關閉了JVM。我說的是error.log中的EXCEPTION_STACK_OVERFLOW,它會導致JVM崩潰。
大多數EXCEPTION_STACK_OVERFLOW
錯誤,我迄今發現發生在本地代碼外JVM。在內部崩潰JVM值得一個錯誤報告,並且將被修復。還是你需要一個(未知的)漏洞?
所以最簡單和最可靠的方法是編寫一個本地庫,其中包含一些導致JVM崩潰並使用JNI調用的代碼。
(一般的回答,我居然不知道如何做到這一點恰好不能使用Java代碼只完成;))
+1。我只能做+1,但想做+100確認我的理解。其他大多數人都提到過關於StackOverFlowError! –
吹堆棧:
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崩潰。第一個會導致StackOverflowError,第二個會導致OutOfMemoryError。 –
public static void stackoverflow()
{
stackoverflow();
}
調用它,並享受:d
這會導致StackOverflowError而不是JVM崩潰! –
請仔細檢查你的* PS *,我想有一個小小的*不*在「am」和「talking」之間缺失... –
我發現的大多數'EXCEPTION_STACK_OVERFLOW'錯誤都發生在JVM之外的本地代碼中......如果*裏面有*,那將是一個錯誤並且是固定。 –
不是確切的答案,但somehwat在那裏http://stackoverflow.com/questions/65200/how-do-you-crash-a-jvm –