(CoroutineDebugger) Top node added to prevent dumpCoroutine() call
Panel gather information from the agent on each breakpoint hit.
This commit is contained in:
+1
@@ -18,6 +18,7 @@ coroutine.dump.creation.trace=Coroutine creation stack trace
|
|||||||
|
|
||||||
coroutine.dump.threads.loading=Loading…
|
coroutine.dump.threads.loading=Loading…
|
||||||
|
|
||||||
|
coroutine.view.node.root=Coroutines
|
||||||
coroutine.view.title=Coroutines
|
coroutine.view.title=Coroutines
|
||||||
coroutine.view.dispatcher.empty=Empty dispatcher
|
coroutine.view.dispatcher.empty=Empty dispatcher
|
||||||
coroutine.view.fetching.error=An error occurred on fetching information
|
coroutine.view.fetching.error=An error occurred on fetching information
|
||||||
|
|||||||
+11
-3
@@ -135,12 +135,20 @@ class XCoroutineView(val project: Project, val session: XDebugSession) :
|
|||||||
inner class EmptyNode : XValueContainerNode<XValueContainer>(panel.tree, null, true, object : XValueContainer() {})
|
inner class EmptyNode : XValueContainerNode<XValueContainer>(panel.tree, null, true, object : XValueContainer() {})
|
||||||
|
|
||||||
inner class XCoroutinesRootNode(suspendContext: SuspendContextImpl) :
|
inner class XCoroutinesRootNode(suspendContext: SuspendContextImpl) :
|
||||||
XValueContainerNode<CoroutineGroupContainer>(
|
XValueContainerNode<CoroutineTopGroupContainer>(
|
||||||
panel.tree, null, false,
|
panel.tree, null, false,
|
||||||
CoroutineGroupContainer(suspendContext)
|
CoroutineTopGroupContainer(suspendContext)
|
||||||
)
|
)
|
||||||
|
|
||||||
inner class CoroutineGroupContainer(val suspendContext: SuspendContextImpl) : XValueContainer() {
|
inner class CoroutineTopGroupContainer(val suspendContext: SuspendContextImpl) : XValueContainer() {
|
||||||
|
override fun computeChildren(node: XCompositeNode) {
|
||||||
|
val children = XValueChildrenList()
|
||||||
|
children.add(CoroutineGroupContainer(suspendContext))
|
||||||
|
node.addChildren(children, true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
inner class CoroutineGroupContainer(val suspendContext: SuspendContextImpl) : RendererContainer(renderer.renderGroup(KotlinDebuggerCoroutinesBundle.message("coroutine.view.node.root"))) {
|
||||||
override fun computeChildren(node: XCompositeNode) {
|
override fun computeChildren(node: XCompositeNode) {
|
||||||
if (suspendContext.suspendPolicy == EventRequest.SUSPEND_ALL) {
|
if (suspendContext.suspendPolicy == EventRequest.SUSPEND_ALL) {
|
||||||
managerThreadExecutor.on(suspendContext).invoke {
|
managerThreadExecutor.on(suspendContext).invoke {
|
||||||
|
|||||||
Reference in New Issue
Block a user