A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://kotlinlang.org/docs/debug-coroutines-with-idea.html below:

Debug coroutines using IntelliJ IDEA – tutorial

Debug coroutines using IntelliJ IDEA – tutorial

This tutorial demonstrates how to create Kotlin coroutines and debug them using IntelliJ IDEA.

The tutorial assumes you have prior knowledge of the coroutines concept.

Create coroutines
  1. Open a Kotlin project in IntelliJ IDEA. If you don't have a project, create one.

  2. To use the kotlinx.coroutines library in a Gradle project, add the following dependency to build.gradle(.kts):

    dependencies { implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") }

    dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2' }

    For other build systems, see instructions in the kotlinx.coroutines README.

  3. Open the Main.kt file in src/main/kotlin.

    The src directory contains Kotlin source files and resources. The Main.kt file contains sample code that will print Hello World!.

  4. Change code in the main() function:

    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()}") }

  5. Build the code by clicking Build Project.

Debug coroutines
  1. Set breakpoints at the lines with the println() function call:

  2. Run the code in debug mode by clicking Debug next to the run configuration at the top of the screen.

    The Debug tool window appears:

  3. Resume the debugger session by clicking Resume Program in the Debug tool window:

    Now the Coroutines tab shows the following:

  4. Resume the debugger session by clicking Resume Program in the Debug tool window:

    Now the Coroutines tab shows the following:

Using IntelliJ IDEA debugger, you can dig deeper into each coroutine to debug your code.

Optimized-out variables

If you use suspend functions, in the debugger, you might see the "was optimized out" text next to a variable's name:

This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. It is difficult to debug code with optimized variables because you don't see their values. You can disable this behavior with the -Xdebug compiler option.

Never use this flag in production: -Xdebug can cause memory leaks.

16 February 2022


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4