From 8651d7b511e2f784b0fafab810b419a4c5d5ed82 Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Tue, 13 Dec 2022 17:55:07 +0100 Subject: [PATCH 1/9] Docs: add tip about -Xdebug to disable "was optimise out" feature --- docs/topics/debug-coroutines-with-idea.md | 7 +++++++ docs/topics/debug-flow-with-idea.md | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/docs/topics/debug-coroutines-with-idea.md b/docs/topics/debug-coroutines-with-idea.md index 2c26051da1..f3b1417baf 100644 --- a/docs/topics/debug-coroutines-with-idea.md +++ b/docs/topics/debug-coroutines-with-idea.md @@ -99,4 +99,11 @@ The tutorial assumes you have prior knowledge of the [coroutines](coroutines-gui * The second coroutine has computed its value and disappeared. * The third coroutine is calculating the value of `b` – it has the **RUNNING** status. +> You can disable a "was optimised out" feature via the `-Xdebug` compiler option. +> The "was optimised out" feature optimizes variables when you use suspend functions. +> However, debugging a code with optimized variables is hard because you don't see their values. +> Be careful: disabling this feature via `-Xdebug` can [cause memory leaks](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). +> +{type="tip"} + Using IntelliJ IDEA debugger, you can dig deeper into each coroutine to debug your code. diff --git a/docs/topics/debug-flow-with-idea.md b/docs/topics/debug-flow-with-idea.md index 887f67da46..9a732f7a5f 100644 --- a/docs/topics/debug-flow-with-idea.md +++ b/docs/topics/debug-flow-with-idea.md @@ -102,6 +102,13 @@ Create a Kotlin [flow](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-cor ![Debug the coroutine](flow-debug-2.png) +> You can disable a "was optimised out" feature via the `-Xdebug` compiler option. +> The "was optimised out" feature optimizes variables when you use suspend functions. +> However, debugging a code with optimized variables is hard because you don't see their values. +> Be careful: disabling this feature via `-Xdebug` can [cause memory leaks](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). +> +{type="tip"} + ## Add a concurrently running coroutine 1. Open the `Main.kt` file in `src/main/kotlin`. From 78562702cd3c7ba6f045cc7333f36e3c800d617f Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Mon, 26 Dec 2022 20:12:16 +0100 Subject: [PATCH 2/9] Docs: update tip about -Xdebug to disable "was optimise out" effect --- docs/images/variable-optimised-out.png | Bin 0 -> 14793 bytes docs/topics/coroutines-basics.md | 16 +++++++++------- docs/topics/debug-coroutines-with-idea.md | 7 ------- docs/topics/debug-flow-with-idea.md | 7 ------- 4 files changed, 9 insertions(+), 21 deletions(-) create mode 100644 docs/images/variable-optimised-out.png diff --git a/docs/images/variable-optimised-out.png b/docs/images/variable-optimised-out.png new file mode 100644 index 0000000000000000000000000000000000000000..fd500aa2ccb14e4753bad8b1cc3ea205a121f8c4 GIT binary patch literal 14793 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 You can get the full code [here](../../kotlinx-coroutines-core/jvm/test/guide/example-basic-02.kt). +You can get the full code [here](../../kotlinx-coroutines-core/jvm/test/guide/example-basic-02.kt). + +> If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: +> ![Variable "a" was optimised out](variable-optimised-out.png) +> This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. +> Debugging code with optimised variables is hard 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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). > -{type="note"} - - +{type="tip"} ## Scope builder diff --git a/docs/topics/debug-coroutines-with-idea.md b/docs/topics/debug-coroutines-with-idea.md index f3b1417baf..2c26051da1 100644 --- a/docs/topics/debug-coroutines-with-idea.md +++ b/docs/topics/debug-coroutines-with-idea.md @@ -99,11 +99,4 @@ The tutorial assumes you have prior knowledge of the [coroutines](coroutines-gui * The second coroutine has computed its value and disappeared. * The third coroutine is calculating the value of `b` – it has the **RUNNING** status. -> You can disable a "was optimised out" feature via the `-Xdebug` compiler option. -> The "was optimised out" feature optimizes variables when you use suspend functions. -> However, debugging a code with optimized variables is hard because you don't see their values. -> Be careful: disabling this feature via `-Xdebug` can [cause memory leaks](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). -> -{type="tip"} - Using IntelliJ IDEA debugger, you can dig deeper into each coroutine to debug your code. diff --git a/docs/topics/debug-flow-with-idea.md b/docs/topics/debug-flow-with-idea.md index 9a732f7a5f..887f67da46 100644 --- a/docs/topics/debug-flow-with-idea.md +++ b/docs/topics/debug-flow-with-idea.md @@ -102,13 +102,6 @@ Create a Kotlin [flow](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-cor ![Debug the coroutine](flow-debug-2.png) -> You can disable a "was optimised out" feature via the `-Xdebug` compiler option. -> The "was optimised out" feature optimizes variables when you use suspend functions. -> However, debugging a code with optimized variables is hard because you don't see their values. -> Be careful: disabling this feature via `-Xdebug` can [cause memory leaks](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). -> -{type="tip"} - ## Add a concurrently running coroutine 1. Open the `Main.kt` file in `src/main/kotlin`. From fa094a5774f945106ed21e504028cb0bee7ba61b Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Mon, 26 Dec 2022 20:17:48 +0100 Subject: [PATCH 3/9] =?UTF-8?q?Docs:=20chore=20=E2=80=93=20update=20pictur?= =?UTF-8?q?e=20of=20"was=20optimise=20out"=20effect?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/images/variable-optimised-out.png | Bin 14793 -> 84535 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/images/variable-optimised-out.png b/docs/images/variable-optimised-out.png index fd500aa2ccb14e4753bad8b1cc3ea205a121f8c4..2db471e9ee6b9c7bab8a0c7fbea5fd9ad1d76960 100644 GIT binary patch literal 84535 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 literal 14793 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 Date: Tue, 27 Dec 2022 00:56:51 +0100 Subject: [PATCH 4/9] =?UTF-8?q?Docs:=20chore=20=E2=80=93=20bring=20back=20?= =?UTF-8?q?test=20comment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/topics/coroutines-basics.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/topics/coroutines-basics.md b/docs/topics/coroutines-basics.md index 7a6b98c86d..3aed36449e 100644 --- a/docs/topics/coroutines-basics.md +++ b/docs/topics/coroutines-basics.md @@ -107,6 +107,11 @@ suspend fun doWorld() { You can get the full code [here](../../kotlinx-coroutines-core/jvm/test/guide/example-basic-02.kt). + + > If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: > ![Variable "a" was optimised out](variable-optimised-out.png) > This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. From 1416e223532ff2d87207fa5ea1639ff6ecea2708 Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Tue, 27 Dec 2022 01:02:00 +0100 Subject: [PATCH 5/9] Docs: update: Debug suspend functions as separate section --- docs/topics/coroutines-basics.md | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/docs/topics/coroutines-basics.md b/docs/topics/coroutines-basics.md index 3aed36449e..6a5c878c2e 100644 --- a/docs/topics/coroutines-basics.md +++ b/docs/topics/coroutines-basics.md @@ -105,21 +105,28 @@ suspend fun doWorld() { ``` {kotlin-runnable="true" kotlin-min-compiler-version="1.3"} -You can get the full code [here](../../kotlinx-coroutines-core/jvm/test/guide/example-basic-02.kt). +> You can get the full code [here](../../kotlinx-coroutines-core/jvm/test/guide/example-basic-02.kt). +> +{type="note"} -> If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: -> ![Variable "a" was optimised out](variable-optimised-out.png) -> This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. -> Debugging code with optimised variables is hard because you don't see their values. -> You can disable this behavior with the `-Xdebug` compiler option. +## Debug suspend functions + +If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: + +![Variable "a" was optimised out](variable-optimised-out.png) + +This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. +Debugging code with optimised variables is hard 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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). > -{type="tip"} +{type="warning"} ## Scope builder From d98612284a9f1a67f209cd6794be6044738ac65c Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Tue, 27 Dec 2022 15:00:46 +0100 Subject: [PATCH 6/9] Docs: update: Move "Debug suspend functions" to other pages --- docs/topics/coroutines-basics.md | 14 -------------- docs/topics/debug-coroutines-with-idea.md | 14 ++++++++++++++ docs/topics/debug-flow-with-idea.md | 14 ++++++++++++++ 3 files changed, 28 insertions(+), 14 deletions(-) diff --git a/docs/topics/coroutines-basics.md b/docs/topics/coroutines-basics.md index 6a5c878c2e..af69894236 100644 --- a/docs/topics/coroutines-basics.md +++ b/docs/topics/coroutines-basics.md @@ -114,20 +114,6 @@ Hello World! --> -## Debug suspend functions - -If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: - -![Variable "a" was optimised out](variable-optimised-out.png) - -This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. -Debugging code with optimised variables is hard 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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). -> -{type="warning"} - ## Scope builder In addition to the coroutine scope provided by different builders, it is possible to declare your own scope using the diff --git a/docs/topics/debug-coroutines-with-idea.md b/docs/topics/debug-coroutines-with-idea.md index 2c26051da1..20484bfdad 100644 --- a/docs/topics/debug-coroutines-with-idea.md +++ b/docs/topics/debug-coroutines-with-idea.md @@ -100,3 +100,17 @@ The tutorial assumes you have prior knowledge of the [coroutines](coroutines-gui * The third coroutine is calculating the value of `b` – it has the **RUNNING** status. Using IntelliJ IDEA debugger, you can dig deeper into each coroutine to debug your code. + +### Debug suspend functions + +If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: + +![Variable "a" was optimised out](variable-optimised-out.png) + +This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. +Debugging code with optimised variables is hard 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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). +> +{type="warning"} \ No newline at end of file diff --git a/docs/topics/debug-flow-with-idea.md b/docs/topics/debug-flow-with-idea.md index 887f67da46..479c905738 100644 --- a/docs/topics/debug-flow-with-idea.md +++ b/docs/topics/debug-flow-with-idea.md @@ -102,6 +102,20 @@ Create a Kotlin [flow](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-cor ![Debug the coroutine](flow-debug-2.png) +### Debug suspend functions + +If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: + +![Variable "a" was optimised out](variable-optimised-out.png) + +This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. +Debugging code with optimised variables is hard 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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). +> +{type="warning"} + ## Add a concurrently running coroutine 1. Open the `Main.kt` file in `src/main/kotlin`. From 78582acfc8b20c38045efb5b94a8f003188f7666 Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Tue, 27 Dec 2022 15:14:47 +0100 Subject: [PATCH 7/9] Docs: chore: "Debug suspend functions" after proofread --- docs/topics/debug-coroutines-with-idea.md | 2 +- docs/topics/debug-flow-with-idea.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/topics/debug-coroutines-with-idea.md b/docs/topics/debug-coroutines-with-idea.md index 20484bfdad..c233ebb34d 100644 --- a/docs/topics/debug-coroutines-with-idea.md +++ b/docs/topics/debug-coroutines-with-idea.md @@ -108,7 +108,7 @@ If you use `suspend` functions, in the debugger, you might see the "was optimise ![Variable "a" was optimised out](variable-optimised-out.png) This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. -Debugging code with optimised variables is hard because you don't see their values. +It is difficult to debug code with optimised 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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). diff --git a/docs/topics/debug-flow-with-idea.md b/docs/topics/debug-flow-with-idea.md index 479c905738..1e8e36d1f8 100644 --- a/docs/topics/debug-flow-with-idea.md +++ b/docs/topics/debug-flow-with-idea.md @@ -109,7 +109,7 @@ If you use `suspend` functions, in the debugger, you might see the "was optimise ![Variable "a" was optimised out](variable-optimised-out.png) This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. -Debugging code with optimised variables is hard because you don't see their values. +It is difficult to debug code with optimised 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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). From 731924111fbaf4b7263a2386e9d9d78d45912347 Mon Sep 17 00:00:00 2001 From: "Victoria.Petrakovich" Date: Tue, 27 Dec 2022 15:17:11 +0100 Subject: [PATCH 8/9] Docs: update: rename "Debug suspend functions" to "Optimised-out variables" --- docs/topics/debug-coroutines-with-idea.md | 2 +- docs/topics/debug-flow-with-idea.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/topics/debug-coroutines-with-idea.md b/docs/topics/debug-coroutines-with-idea.md index c233ebb34d..32f4186d35 100644 --- a/docs/topics/debug-coroutines-with-idea.md +++ b/docs/topics/debug-coroutines-with-idea.md @@ -101,7 +101,7 @@ The tutorial assumes you have prior knowledge of the [coroutines](coroutines-gui Using IntelliJ IDEA debugger, you can dig deeper into each coroutine to debug your code. -### Debug suspend functions +### Optimised-out variables If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: diff --git a/docs/topics/debug-flow-with-idea.md b/docs/topics/debug-flow-with-idea.md index 1e8e36d1f8..a5d5686ba6 100644 --- a/docs/topics/debug-flow-with-idea.md +++ b/docs/topics/debug-flow-with-idea.md @@ -102,7 +102,7 @@ Create a Kotlin [flow](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-cor ![Debug the coroutine](flow-debug-2.png) -### Debug suspend functions +### Optimised-out variables If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: From 61d1df5f75edeb5ab2a2ef2fe55c90b23df03533 Mon Sep 17 00:00:00 2001 From: Victoria Petrakovich <78360457+PetrakovichVictoria@users.noreply.github.com> Date: Wed, 28 Dec 2022 16:56:28 +0100 Subject: [PATCH 9/9] Docs: optimised to optimized --- docs/topics/debug-coroutines-with-idea.md | 8 ++++---- docs/topics/debug-flow-with-idea.md | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/topics/debug-coroutines-with-idea.md b/docs/topics/debug-coroutines-with-idea.md index 32f4186d35..b31aa79f51 100644 --- a/docs/topics/debug-coroutines-with-idea.md +++ b/docs/topics/debug-coroutines-with-idea.md @@ -101,14 +101,14 @@ The tutorial assumes you have prior knowledge of the [coroutines](coroutines-gui Using IntelliJ IDEA debugger, you can dig deeper into each coroutine to debug your code. -### Optimised-out variables +### Optimized-out variables -If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: +If you use `suspend` functions, in the debugger, you might see the "was optimized out" text next to a variable's name: -![Variable "a" was optimised out](variable-optimised-out.png) +![Variable "a" was optimized out](variable-optimised-out.png) This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. -It is difficult to debug code with optimised variables because you don't see their values. +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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0). diff --git a/docs/topics/debug-flow-with-idea.md b/docs/topics/debug-flow-with-idea.md index a5d5686ba6..0aa78b1780 100644 --- a/docs/topics/debug-flow-with-idea.md +++ b/docs/topics/debug-flow-with-idea.md @@ -102,14 +102,14 @@ Create a Kotlin [flow](https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-cor ![Debug the coroutine](flow-debug-2.png) -### Optimised-out variables +### Optimized-out variables -If you use `suspend` functions, in the debugger, you might see the "was optimised out" text next to a variable's name: +If you use `suspend` functions, in the debugger, you might see the "was optimized out" text next to a variable's name: -![Variable "a" was optimised out](variable-optimised-out.png) +![Variable "a" was optimized out](variable-optimised-out.png) This text means that the variable's lifetime was decreased, and the variable doesn't exist anymore. -It is difficult to debug code with optimised variables because you don't see their values. +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](https://youtrack.jetbrains.com/issue/KT-48678/Coroutine-debugger-disable-was-optimised-out-compiler-feature#focus=Comments-27-6015585.0-0).