Отладка сопроцедур с помощью IntelliJ IDEA
| Последнее обновление | 17 сентября 2020 г. |
В данном руководстве предполагается, что вы знакомы с концепцией сопроцедур.
Отладка работает для версии
kotlinx-coroutines-core1.3.8 или более поздней.
Создание сопроцедур
-
Откройте проект Kotlin в IntelliJ IDEA. Если у вас нет проекта, создайте его.
-
Откройте файл
main.ktвsrc/main/kotlin.Каталог
srcсодержит файлы исходного кода Kotlin и ресурсы. Файлmain.ktсодержит пример кода, который будет печататьHello World!. -
Измените код в функции
main().- Используйте блок
runBlocking(), чтобы обернуть сопроцедуру. - Используйте функцию
async(), чтобы создать сопроцедуры, которые вычисляют отложенные значенияaиb. - Используйте функцию
await(), чтобы дождаться результата вычисления. - Используйте функцию
println(), чтобы вывести в консоль состояние вычисления и результат умножения.
import kotlinx.coroutines.* fun main() = runBlocking<Unit> { val a = async { println("I'm computing part of the answer") 6 } val b = async { println("I'm computing another part of the answer") 7 } println("The answer is ${a.await() * b.await()}") } - Используйте блок
-
Скомпилируйте код, нажав Скомпилировать проект.
Отладка сопроцедур
-
Установите точки останова в строках с вызовом функции
println(). -
Запустите код в режиме отладки, нажав Отладка рядом с конфигурацией запуска в верхней части экрана.
Окно инструментов Отладка появится:
- Вкладка Фреймы содержит стек вызовов.
- Вкладка Переменные содержит переменные в текущем контексте.
- Вкладка Сопроцедуры содержит информацию о запущенных или приостановленных сопроцедурах. Она показывает, что существует три сопроцедуры. Первая имеет статус ЗАПУЩЕНА, а две другие — СОЗДАНА.
-
Возобновите сеанс отладки, нажав Продолжить программу в окне инструментов Отладка:
Теперь вкладка Сопроцедуры показывает следующее:
- Первая сопроцедура имеет статус ПРИОСТАНОВЛЕНА — она ожидает значений, чтобы их можно было умножить.
- Вторая сопроцедура вычисляет значение
a— она имеет статус ЗАПУЩЕНА. - Третья сопроцедура имеет статус СОЗДАНА и не вычисляет значение
b.
-
Возобновите сеанс отладки, нажав Продолжить программу в окне инструментов Отладка:
Теперь вкладка Сопроцедуры показывает следующее:
- Первая сопроцедура имеет статус ПРИОСТАНОВЛЕНА — она ожидает значений, чтобы их можно было умножить.
- Вторая сопроцедура вычислила своё значение и исчезла.
- Третья сопроцедура вычисляет значение
b— она имеет статус ЗАПУЩЕНА.
Используя отладчик IntelliJ IDEA, можно углубиться в каждую сопроцедуру для отладки кода.
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/tutorials/coroutines/debug-coroutines-with-idea.html