2011-07-08 13 views
8

Làm cách nào tôi có thể tạo lại lỗi EXCEPTION_STACK_OVERFLOW trong Java.Làm cách nào tôi có thể tạo lại lỗi EXCEPTION_STACK_OVERFLOW trong Java

PS: Tôi không nói về lỗi StackOverflowError trong Java, điều này sẽ tắt JVM một cách duyên dáng. Tôi đang nói về EXCEPTION_STACK_OVERFLOW trong error.log khiến JVM gặp sự cố.

+3

hãy kiểm tra * PS * tăng gấp đôi, tôi đoán có một nhỏ * không * thiếu ở giữa "am" và "talking" ... –

+2

Hầu hết các lỗi 'EXCEPTION_STACK_OVERFLOW' tôi tìm thấy cho đến nay xảy ra trong mã gốc bên ngoài JVM ... Nếu có một * bên trong *, nó sẽ là một lỗi và phải đã sửa. –

+0

Không chính xác câu trả lời, nhưng somehwat là có tại http://stackoverflow.com/questions/65200/how-do-you-crash-a-jvm –

Trả lời

6

Hầu hết EXCEPTION_STACK_OVERFLOW lỗi tôi tìm thấy cho đến nay xảy ra trong mã nguồn gốc bên ngoài JVM. Một sự cố bên trong JVM đáng giá một báo cáo lỗi và sẽ được sửa. Hay bạn cần một khai thác (chưa biết)?

Vì vậy, cách giảm giá và đáng tin cậy nhất là viết một thư viện gốc với một số mã khiến JVM gặp sự cố và gọi với JNI.

(câu trả lời chung, tôi thực sự không biết làm thế nào để làm điều đó một cách chính xác không thể được thực hiện với mã java chỉ;.))

+1

+1. Tôi chỉ có thể làm +1 nhưng muốn làm +100 để xác nhận sự hiểu biết của mình. Hầu hết những người khác đã đề cập về StackOverFlowError! –

3

Blow stack:

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

Blow đống:

public static void main(String[] args) { 
    List<String> list = new ArrayList<String>(); 
    while(true) list.add(new String("boom")); 
} 
+2

Không ai ở trên sẽ gây ra JVM sụp đổ. Đầu tiên sẽ gây ra StackOverflowError và thứ hai sẽ gây ra lỗi OutOfMemoryError. –

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

Gọi nó, và thưởng thức: D

+2

Điều này sẽ gây ra StackOverflowError và không JVM sụp đổ! –

Các vấn đề liên quan