Skip to content

Commit e043fbd

Browse files
committed
Attach thread event reasons and thread ids
1 parent d9ed330 commit e043fbd

File tree

5 files changed

+24
-5
lines changed

5 files changed

+24
-5
lines changed

adapter/src/main/kotlin/org/javacs/ktda/adapter/KotlinDebugAdapter.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ class KotlinDebugAdapter(
146146
eventBus.exceptionListeners.add {
147147
exceptionsPool.store(it.threadID, it.exception)
148148
sendStopEvent(it.threadID, StoppedEventArgumentsReason.EXCEPTION)
149+
}
150+
eventBus.threadListeners.add {
151+
149152
}
150153
stdoutAsync.execute {
151154
debuggee.stdout?.let { pipeStreamToOutput(it, OutputEventArgumentsCategory.STDOUT) }
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
package org.javacs.ktda.core.event
22

3-
class ExitEvent
3+
object ExitEvent
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
package org.javacs.ktda.core.event
22

3-
object ThreadEvent
3+
class ThreadEvent(
4+
val threadID: Long,
5+
val reason: ThreadEventReason
6+
)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.javacs.ktda.core.event
2+
3+
enum class ThreadEventReason(val value: String) {
4+
STARTED("started"),
5+
STOPPED("stopped")
6+
}

adapter/src/main/kotlin/org/javacs/ktda/jdi/event/VMEventBus.kt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import org.javacs.ktda.core.event.BreakpointStopEvent
1010
import org.javacs.ktda.core.event.ExceptionStopEvent
1111
import org.javacs.ktda.core.event.StepStopEvent
1212
import org.javacs.ktda.core.event.ThreadEvent
13+
import org.javacs.ktda.core.event.ThreadEventReason
1314
import org.javacs.ktda.jdi.exception.JDIException
1415
import com.sun.jdi.VirtualMachine
1516
import com.sun.jdi.VMDisconnectedException
@@ -71,7 +72,7 @@ class VMEventBus(private val vm: VirtualMachine): DebuggeeEventBus {
7172
} catch (e: VMDisconnectedException) {
7273
LOG.info("VMEventBus event poller terminated by disconnect: {}", e.message)
7374
}
74-
exitListeners.fire(ExitEvent())
75+
exitListeners.fire(ExitEvent)
7576
}, "eventBus").start()
7677
}
7778

@@ -96,10 +97,16 @@ class VMEventBus(private val vm: VirtualMachine): DebuggeeEventBus {
9697
it.resumeThreads = false
9798
}
9899
subscribe(JDIThreadStartEvent::class) {
99-
threadListeners.fire(ThreadEvent)
100+
threadListeners.fire(ThreadEvent(
101+
threadID = it.jdiEvent.thread().uniqueID(),
102+
reason = ThreadEventReason.STARTED
103+
))
100104
}
101105
subscribe(JDIThreadDeathEvent::class) {
102-
threadListeners.fire(ThreadEvent)
106+
threadListeners.fire(ThreadEvent(
107+
threadID = it.jdiEvent.thread().uniqueID(),
108+
reason = ThreadEventReason.STOPPED
109+
))
103110
}
104111
}
105112

0 commit comments

Comments
 (0)