You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Debug improvements
* Rename printHierarchy to printJob and hierarchyToString to jobToString, introduce corresponding methods for scope to simplify scopes debugging
* Remove CoroutineState.job in favor of CoroutineState.jobOrNull
* Use runCatching in Continuation.toDebugString to avoid crashes on some Androids with R8 issue
Addresses #858
Copy file name to clipboardExpand all lines: binary-compatibility-validator/reference-public-api/kotlinx-coroutines-debug.txt
+6-4Lines changed: 6 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,6 @@ public final class kotlinx/coroutines/debug/CoroutineState {
5
5
public fun equals (Ljava/lang/Object;)Z
6
6
public final fun getContinuation ()Lkotlin/coroutines/Continuation;
7
7
public final fun getCreationStackTrace ()Ljava/util/List;
8
-
public final fun getJob ()Lkotlinx/coroutines/Job;
9
8
public final fun getJobOrNull ()Lkotlinx/coroutines/Job;
10
9
public final fun getState ()Lkotlinx/coroutines/debug/State;
11
10
public fun hashCode ()I
@@ -19,10 +18,13 @@ public final class kotlinx/coroutines/debug/DebugProbes {
19
18
public static synthetic fun dumpCoroutines$default (Lkotlinx/coroutines/debug/DebugProbes;Ljava/io/PrintStream;ILjava/lang/Object;)V
20
19
public final fun dumpCoroutinesState ()Ljava/util/List;
21
20
public final fun getSanitizeStackTraces ()Z
22
-
public final fun hierarchyToString (Lkotlinx/coroutines/Job;)Ljava/lang/String;
23
21
public final fun install ()V
24
-
public final fun printHierarchy (Lkotlinx/coroutines/Job;Ljava/io/PrintStream;)V
25
-
public static synthetic fun printHierarchy$default (Lkotlinx/coroutines/debug/DebugProbes;Lkotlinx/coroutines/Job;Ljava/io/PrintStream;ILjava/lang/Object;)V
22
+
public final fun jobToString (Lkotlinx/coroutines/Job;)Ljava/lang/String;
23
+
public final fun printJob (Lkotlinx/coroutines/Job;Ljava/io/PrintStream;)V
24
+
public static synthetic fun printJob$default (Lkotlinx/coroutines/debug/DebugProbes;Lkotlinx/coroutines/Job;Ljava/io/PrintStream;ILjava/lang/Object;)V
25
+
public final fun printScope (Lkotlinx/coroutines/CoroutineScope;Ljava/io/PrintStream;)V
26
+
public static synthetic fun printScope$default (Lkotlinx/coroutines/debug/DebugProbes;Lkotlinx/coroutines/CoroutineScope;Ljava/io/PrintStream;ILjava/lang/Object;)V
27
+
public final fun scopeToString (Lkotlinx/coroutines/CoroutineScope;)Ljava/lang/String;
26
28
public final fun setSanitizeStackTraces (Z)V
27
29
public final fun uninstall ()V
28
30
public final fun withDebugProbes (Lkotlin/jvm/functions/Function0;)V
Copy file name to clipboardExpand all lines: core/kotlinx-coroutines-debug/test/ToStringTest.kt
+12-12Lines changed: 12 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ import org.junit.Test
11
11
importkotlin.coroutines.*
12
12
importkotlin.test.*
13
13
14
-
classHierarchyToStringTest : TestBase() {
14
+
classToStringTest : TestBase() {
15
15
16
16
@Before
17
17
funsetUp() {
@@ -34,9 +34,9 @@ class HierarchyToStringTest : TestBase() {
34
34
val tab ='\t'
35
35
val expectedString ="""
36
36
"coroutine#2":StandaloneCoroutine{Completing}
37
-
$tab"foo#3":DeferredCoroutine{Active}, continuation is SUSPENDED at line HierarchyToStringTest${'$'}launchHierarchy${'$'}1${'$'}1.invokeSuspend(HierarchyToStringTest.kt:30)
38
-
$tab"coroutine#4":ActorCoroutine{Active}, continuation is SUSPENDED at line HierarchyToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}1.invokeSuspend(HierarchyToStringTest.kt:40)
39
-
$tab$tab"coroutine#5":StandaloneCoroutine{Active}, continuation is SUSPENDED at line HierarchyToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}job$1.invokeSuspend(HierarchyToStringTest.kt:37)
37
+
$tab"foo#3":DeferredCoroutine{Active}, continuation is SUSPENDED at line ToStringTest${'$'}launchHierarchy${'$'}1${'$'}1.invokeSuspend(ToStringTest.kt:30)
38
+
$tab"coroutine#4":ActorCoroutine{Active}, continuation is SUSPENDED at line ToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}1.invokeSuspend(ToStringTest.kt:40)
39
+
$tab$tab"coroutine#5":StandaloneCoroutine{Active}, continuation is SUSPENDED at line ToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}job$1.invokeSuspend(ToStringTest.kt:37)
@@ -46,22 +46,22 @@ class HierarchyToStringTest : TestBase() {
46
46
funtestActiveHierarchy() = runBlocking {
47
47
val tab ='\t'
48
48
val expectedString ="""
49
-
"coroutine#2":StandaloneCoroutine{Active}, continuation is SUSPENDED at line HierarchyToStringTest${'$'}launchHierarchy${'$'}1.invokeSuspend(HierarchyToStringTest.kt:94)
50
-
$tab"foo#3":DeferredCoroutine{Active}, continuation is SUSPENDED at line HierarchyToStringTest${'$'}launchHierarchy${'$'}1${'$'}1.invokeSuspend(HierarchyToStringTest.kt:30)
51
-
$tab"coroutine#4":ActorCoroutine{Active}, continuation is SUSPENDED at line HierarchyToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}1.invokeSuspend(HierarchyToStringTest.kt:40)
52
-
$tab$tab"coroutine#5":StandaloneCoroutine{Active}, continuation is SUSPENDED at line HierarchyToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}job$1.invokeSuspend(HierarchyToStringTest.kt:37)
49
+
"coroutine#2":StandaloneCoroutine{Active}, continuation is SUSPENDED at line ToStringTest${'$'}launchHierarchy${'$'}1.invokeSuspend(ToStringTest.kt:94)
50
+
$tab"foo#3":DeferredCoroutine{Active}, continuation is SUSPENDED at line ToStringTest${'$'}launchHierarchy${'$'}1${'$'}1.invokeSuspend(ToStringTest.kt:30)
51
+
$tab"coroutine#4":ActorCoroutine{Active}, continuation is SUSPENDED at line ToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}1.invokeSuspend(ToStringTest.kt:40)
52
+
$tab$tab"coroutine#5":StandaloneCoroutine{Active}, continuation is SUSPENDED at line ToStringTest${'$'}launchHierarchy${'$'}1${'$'}2${'$'}job$1.invokeSuspend(ToStringTest.kt:37)
0 commit comments