mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-04 08:51:02 +07:00
This commit is part of series of project model refactoring commits, look at neighborhood commits. Check out last commits in this sequence. These commit are done for sake of unification and making it easier to write cooperative compilation prototype. GitOrigin-RevId: 341fbb8bc02ad28a7e2113b859fba87756af5c37
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.