(CoroutineDebugger) Stack printing logic extracted to the single place

for DebugMetadata and CoroutinePanel, some corner cases fixed, test
cases added.
Added:
 - external maven dependencies in test scenarios
 - comparing stack traces + variables on breakpoint
This commit is contained in:
Vladimir Ilmov
2020-04-14 14:08:59 +02:00
parent 153056b4fd
commit 3cd0eb0fca
47 changed files with 1487 additions and 734 deletions
@@ -0,0 +1,30 @@
package coroutine1
import kotlin.coroutines.Continuation
import kotlin.coroutines.EmptyCoroutineContext
import kotlin.coroutines.startCoroutine
fun main() {
val cnt = Continuation<Int>(EmptyCoroutineContext) { }
val result = ::test1.startCoroutine(1, cnt)
println(result)
}
suspend fun test1(i: Int): Int {
val test1 = "a"
a(test1)
println(test1)
return i
}
suspend fun a(aParam: String) {
val a = "a"
b(a)
println(a)
}
suspend fun b(bParam: String) {
val b = "b"
// Breakpoint!
println(b)
}