※ソース記事はこちら
このチュートリアルでは、Kotlinコルーチンを作りIntelliJ IDEAを使ってデバッグする方法をデモする。
チュートリアルは、事前にコルーチンの概要の知識があることを想定している。
デバッグはkotlinx-coroutines-coreバージョン1.3.8以上で動作する。
コルーチンの作成
- IntelliJ IDEAでKotlinプロジェクトを開く。無い場合は一つ作成する。
-
src/main/kotlin内のmain.ktを開く。
srcディレクトリには、Kotlinソースとリソースが含まれる。main.ktファイルにはHello World!を出力するサンプルコードが含まれている。 -
main関数内のコードを変更する。- コルーチンをラップするためにrunBlockingブロックを使う。
- deferred値の
aとbを計算するコルーチンを作るため、async関数を使う。 - 計算結果を待つために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()関数呼びだしを持つ行にブレークポイントを設定する。
- 画面の上にある実行構成のとなりの
デバッグをクリックすることで、デバッグモードでコードを実行する。

デバッグツールウィンドウが表示される。 -
デバッグツールウィンドウの再開をクリックすることで、デバッグセッションを再開する。
現在コルーチンタブには次のものが見えている。- 最初のコルーチンは
SUSPENDED状態であり、掛け算をするために値を待っている。 - 二つめのコルーチンは
aの値を計算している。RUNNING状態を持つ。 - 三つめのコルーチンは
CREATED状態を持ち、bの値を計算していない。
- 最初のコルーチンは
-
デバッグツールウィンドウの再開をクリックすることで、デバッグセッションを再開する。
現在コルーチンタブには次のものが見えている。- 最初のコルーチンは
SUSPENDED状態であり、掛け算をするために値を待っている。 - 二つめのコルーチンは値を計算し消えている。
- 三つめのコルーチンは
bの値を計算しており、RUNNING状態を持つ。
- 最初のコルーチンは
IntelliJ IDEAのデバッガーを使うことで、自分のコードをデバッグするためにそれぞれのコルーチンを詳しく調べることができる。
