Files
openide/plugins/kotlin/jvm-debugger/coroutines/ReadMe.md
Vladimir Ilmov 3d3e84a054 (CoroutineDebugger) 201 compatibility fix
#KT-39143 fixed

Original commit: 545fdb96d5351157fdedb623b3b37a039bc53c4c

GitOrigin-RevId: 06c1afc239c87bbcde1459efee91b078e6f1d0eb
2020-06-03 18:55:49 +03:00

964 B

Coroutine Debugger support

Java thread stack with coroutine information

  1. Real frames
  2. Coroutine 'preflight' frame: SuspendExitMode is SUSPEND_LAMBDA or SUSPEND_METHOD_PARAMETER. Location.isPreflight
  3. One or more frames (skipped in debugger)
  4. Coroutine 'starting' frame: SuspendExitMode SUSPEND_METHOD frame
  5. Restored from coroutine information frames
  6. Real frames after the 'starting' frame
  7. Creation frames (only exists if coroutine agent enabled)

Debugger interface

Debugger works as a combination of PositionManager and AsyncStackTraceProvider. Once the 'preflight' signature frame found PositionManager forms a 'preflight' frame with coroutine information which gets processed with AsyncStackTraceProvider.