Как можно отлаживать код Kotlin при входе или выходе из функции «приостановить»?(см. пример ниже).
fun mainFunction() = runBlocking {
println("before suspend call")
anotherFunction()
println("after suspend call")
}
suspend fun anotherFunction() {
// do something
}
Я понимаю, что сопрограммы Kotlin делают много магии при выполнении функций приостановки и что выполнение может переключать потоки в этот момент.Поэтому при выходе из «anotherFunction ()» я получаю только пошаговый просмотр кода платформы сопрограмм и не могу вернуться к «mainFunction ()».
Однако мне интересно, можно ли отладить это так, как если бы не было сопрограмм.Есть ли инструмент или библиотека, которая включает эту функцию?Это возможно в дорожной карте для совместной поддержки?
Такая простая функция, как флаг компилятора, отключающий магию сопрограмм, уже прошла бы долгий путь, но я ничего не смог найти.
Единственная полезная вещь, которую я нашел, - это: -ea параметр JVM также активирует режим отладки kotlin, который как минимум «исправит» трассировки стека для исключений.