2016-04-20 69 views
4

我使用想法2016.1.1並想知道爲什麼想法不會立即殺死調試過程,當我點擊停止按鈕。爲什麼intellij想法不立即殺死調試過程?

E.g.使用這段代碼重現它

public class Main { 

    public static void main(String[] args) { 
    int i = 0; 
    while (true) { 
     i++; 
     System.out.print("I'm still alive: "); 
     System.out.println(i); 
    } 
    } 
} 

在循環開始之前設置一個斷點。

enter image description here

啓動調試會話,等到它打破並按下紅色停止按鈕(CTRL-F2)。

enter image description here

我希望這個過程立即停止,它不打印任何東西,但它打印:

"C:\Program Files\Java\jdk1.6.0_38\bin\java" .... 
Connected to the target VM, address: '127.0.0.1:54394', transport: 'socket' 
Disconnected from the target VM, address: '127.0.0.1:54394', transport: 'socket' 
I'm still alive: 1 
I'm still alive: 2 
I'm still alive: 3 
I'm still alive: 4 
... 
I'm still alive: 319 
I'm still alive: 320 
I'm still alive: 321 
I'm still alive: 
Process finished with exit code -1 

爲什麼過程中不要立即停止?

是否有另一種方法來強制立即停止?

編輯

想法14.1.5就試了一下。該過程如預期的那樣立即停止。看來,一個錯誤與2016年

回答

1

打開一個錯誤IDEA-155007固定在2016.3(163.7743.44)的錯誤。我剛剛證實了它。

1

我的調查至今...推出

當IDEA開始它採用主包裝的Java進程。這個包裝器啓動一個監聽ServerSocket命令的守護進程線程。

IDEA向該服務器套接字發送一個STOP信號。當服務器線程收到STOP信號時,它存在使用System.exit(1)的jvm。

看來,IDEA從調試恢復JVM,然後發送STOP信號。因此,直到收到STOP信號,過程纔會繼續。

我在https://youtrack.jetbrains.com/issue/IDEA-155007

+0

如果他們想要很快看到此錯誤,請在youtrack問題上投票。 – goat

相關問題