Files
openide/plugins/kotlin/jvm-debugger/coroutines
Nikolay Chashnikov 24a1844984 [IntelliJ project configuration] adapt settings of Kotlin facet to Kotlin 1.5 plugin
Kotlin 1.5 doesn't write tag for 'jvmTarget' option if its value is '1.8', and does write it if its value is '1.6', so this change is needed to avoid modified iml files if the project is opened with Kotlin plugin 1.5 (see KTIJ-19019).

GitOrigin-RevId: 8fc21bf185ac8c23675123b904f25af5defcc98e
2021-07-07 10:52:45 +00:00
..

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.