2016-04-20 8 views
4

Ich verwende Idee 2016.1.1 und frage mich, warum Idee den Debug-Prozess nicht sofort beendet, wenn ich auf die Stopp-Taste klicke.Warum beendet Intellij Idee den Debug-Prozess nicht sofort?

z. Verwenden Sie dieses Codeteil, um es zu reproduzieren

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

Legen Sie einen Haltepunkt fest, bevor die Schleife beginnt.

enter image description here

eine Debug-Sitzung starten, warten, bis es die rote Stopptaste (CTRL-F2) bricht und drücken.

enter image description here

Ich würde erwarten, dass der Prozess sofort gestoppt wird und dass es nicht alles drucken, aber er druckt:

"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 

Warum wird der Prozess nicht sofort gestoppt werden?

Gibt es eine andere Möglichkeit, um einen sofortigen Stopp zu erzwingen?

EDIT

versucht es einfach mit Idee 14.1.5. Der Prozess stoppt sofort wie erwartet. Es scheint, dass ein Fehler mit 2016.

Antwort

1

der Bug IDEA-155007 in 2016,3 (163.7743.44) befestigt ist. Ich habe es gerade verifiziert.

1

Meine Untersuchungen weit so eingeführt wurde ...

Wenn IDEA einen Java-Prozess beginnt es Haupt-Wrapper verwendet. Dieser Wrapper startet einen Daemon-Thread, der eine ServerSocket für Befehle abhört.

IDEA sendet ein STOP Signal an diesen Server-Socket. Wenn der Server-Thread das STOP-Signal empfängt, existiert der JVM unter Verwendung von System.exit(1).

Es scheint, dass IDEA die JVM von debug wieder aufnimmt und dann das STOP-Signal sendet. Bis das Signal STOP empfangen wird, wird der Prozess fortgesetzt.

geöffnet I einen Fehler bei https://youtrack.jetbrains.com/issue/IDEA-155007

+0

ppl sollte über das yotrack-Problem abstimmen, wenn sie diesen Bug bald behoben sehen wollen. – goat

Verwandte Themen