mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 00:20:55 +07:00
^KTIJ-6081 Fixed (cherry picked from commit e9bbb0499ef8c7aaacb79d18885fc05ac463ee8d) KT-MR-2653 GitOrigin-RevId: 3ecb9e7b768b3f91d829e6816c0925d338b903f0
Coroutine Debugger support
Java thread stack with coroutine information
- Real frames
- Coroutine 'preflight' frame: SuspendExitMode
is
SUSPEND_LAMBDAorSUSPEND_METHOD_PARAMETER. Location.isPreflight - One or more frames (skipped in debugger)
- Coroutine 'starting' frame: SuspendExitMode
SUSPEND_METHODframe - Restored from coroutine information frames
- Real frames after the 'starting' frame
- 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.