Отладка корутин с помощью IntelliJ IDEA — руководство
В этом руководстве показано, как создавать корутины Kotlin и отлаживать их с помощью IntelliJ IDEA.
Предполагается, что вы уже знакомы с понятием корутин.
Создание корутин
Откройте проект Kotlin в IntelliJ IDEA. Если у вас нет проекта, создайте его.
-
Чтобы использовать библиотеку
kotlinx.coroutinesв проекте Gradle, добавьте следующую зависимость вbuild.gradle(.kts):dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0") }dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.11.0' }Инструкции для других систем сборки см. в файле README библиотеки
kotlinx.coroutines. -
Откройте файл
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 можно подробно изучить каждую корутину и отладить код.
Оптимизированные переменные
При использовании функций suspend в отладчике рядом с именем переменной может отображаться текст «оптимизировано»:
Этот текст означает, что время жизни переменной было сокращено и она больше не существует. Отлаживать код с оптимизированными переменными сложно, поскольку их значения не отображаются. Это поведение можно отключить с помощью параметра компилятора -Xdebug.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/debug-coroutines-with-idea.html