2009-06-21 4 views

Odpowiedz

11

IntelliJ współdziała z działającą maszyną JVM za pośrednictwem standardowego interfejsu debugowania Java, dzięki czemu może debugować programy pod kątem różnych JDK. Nie obsługuje to przesuwania punktu wykonywania w opisany sposób.

Umożliwia cofnięcie stosu wywołań i ponowne wywołanie metody. W IntelliJ, użyj okna wątków, aby wybrać ramkę stosu zawieszonego wątku i powrócić do niego. Następnie kontynuuj wątek, aby ponownie wywołać metodę w tym punkcie programu.

Uwaga: nie spowoduje to cofnięcia stanu obiektów, więc mogą wystąpić dziwne efekty.

+22

Cholera, Visual Studio, dlaczego musisz być taki niesamowity? : P – dialex

+0

Szukałem sposobu na wznowienie wskaźnika debugowania na początku metody. nie ma mowy o "ponownym wywołaniu" tej metody. dla mnie upuściłem górną ramę i ponownie wykonałem funkcję. – zinking

-7

Java nie ma bieżącego wskaźnika wykonania, który może wskazywać losowy fragment kodu. Java zakłada, że ​​kolejność wykonywania jest w kodzie, a nie czymś, co można manipulować.

Być może mógłbyś wyjaśnić, dlaczego chciałbyś to zrobić i możemy Ci dać inny sposób osiągnięcia tego samego.

+5

Bardzo pomocne jest debugowanie :) – ripper234

+0

Czy możesz podać przykład? –

+9

Przykładem może być błąd w kodzie, który uniemożliwia wykonywanie dalszych czynności, ale obecnie nie przejmujesz się tym, więc chcesz pominąć tę część. Lub chcesz pominąć fragment kodu, aby zobaczyć, co by się stało, gdyby nie zostało wykonane (np. Aby potwierdzić założenie poprawne) i możesz to zrobić bez rekompilacji całości. – axk

-2

Możesz polecić debuggerowi "Run to line" do przodu.

2

W środowisku Eclipse, jeśli edytowana jest debugowana metoda powodująca aktualizację debugowanego kodu, JVM wycofuje wykonanie do pierwszego bezpiecznego miejsca. Zwykle jest to pierwsza linia w tej metodzie.

Jest to bardzo pomocne w scenariuszu debugowania.