Відповіді:
Розглянемо наступний код з вашим поточним вказівником інструкцій (рядок, який буде виконаний далі, позначений ->
) у f(x)
рядку в g()
, викликаному g(2)
рядком у main()
:
public class testprog {
static void f (int x) {
System.out.println ("num is " + (x+0)); // <- STEP INTO
}
static void g (int x) {
-> f(x); //
f(1); // <----------------------------------- STEP OVER
}
public static void main (String args[]) {
g(2);
g(3); // <----------------------------------- STEP OUT OF
}
}
Якщо б ви вступили в цей момент, ви перейдете до println()
лінії f()
, перейшовши на виклик функції.
Якщо ви перейшли в цей момент, ви перейдете до f(1)
лінії g()
, перейшовши через виклик функції.
Ще одна корисна особливість налагоджувачів - це вихід із кроку або повернення. У такому випадку повернення кроків в основному запустить вас через поточну функцію, поки ви не повернетесь назад на один рівень. Іншими словами, він переступить f(x)
і f(1)
повернеться до функції виклику, щоб закінчитися g(3)
в main()
.
Eclipse (принаймні Європа, яка є єдиною, що мені зараз зручна) використовує F5для step into
, F6для step over
і F7для step return
.
g(3)
; в main()
" <- Ви припускаючи , що ви отримали ваше поточне місце розташування з g(2)
і як тільки ви все зробили ви повернутися до своєї наступної рядку g(3)
?
g(2)
або g(3)
дзвінок зараз), тому я прояснив це в першому абзаці. Дякую за голову вгору
Під час налагодження рядків коду, ось звичайні сценарії:
Eclipse має інші вдосконалені функції налагодження, але це основні основи.
крок в копатиметься у виклики методу,
крок над цим просто виконає рядок і перейде до наступного
Ви не можете переглядати деталі методу, скориставшись кроком. Якщо ви хочете пропустити поточний рядок, ви можете скористатися кроком, тоді вам потрібно лише натиснути кнопку F6лише один раз, щоб перейти до наступного рядка. І якщо ви думаєте, що в методі щось не так, використовуйте F5для вивчення деталей.
Крок у наступний вираз у поточно вибраному рядку, який потрібно виконати, викликається, а виконання призупиняється на наступному виконуваному рядку методу, який викликається.
Крок над Вибраний на даний момент рядок виконується і призупиняється до наступного виконуваного рядка.