aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/ThreadHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skylarkdebug/server/ThreadHandler.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skylarkdebug/server/ThreadHandler.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/ThreadHandler.java b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/ThreadHandler.java
index fd30c64e01..e1f74f9dd6 100644
--- a/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/ThreadHandler.java
+++ b/src/main/java/com/google/devtools/build/lib/skylarkdebug/server/ThreadHandler.java
@@ -225,6 +225,11 @@ final class ThreadHandler {
}
// no need to list frames within the synchronize block: threads can only be resumed in response
// to a client request, and requests are handled serially
+ return listFrames(debuggable, pausedState);
+ }
+
+ private static ImmutableList<SkylarkDebuggingProtos.Frame> listFrames(
+ Debuggable debuggable, PausedThreadState pausedState) {
return debuggable
.listFrames(pausedState.location)
.stream()
@@ -265,6 +270,7 @@ final class ThreadHandler {
SkylarkDebuggingProtos.Thread threadProto;
PausedThreadState pausedState;
+ Debuggable debuggable;
synchronized (threads) {
ThreadState thread = threads.get(threadId);
if (thread == null) {
@@ -276,13 +282,15 @@ final class ThreadHandler {
transport.postEvent(DebugEventHelper.threadStartedEvent(threadId, fallbackThreadName));
thread = doRegisterThread(threadId, fallbackThreadName, env);
}
+ debuggable = thread.debuggable;
pausedState = new PausedThreadState(location);
thread.pausedState = pausedState;
// get proto after setting the paused state, so that it's up to date
threadProto = getThreadProto(thread);
}
- transport.postEvent(DebugEventHelper.threadPausedEvent(threadProto));
+ transport.postEvent(
+ DebugEventHelper.threadPausedEvent(threadProto, listFrames(debuggable, pausedState)));
pausedState.semaphore.acquireUninterruptibly();
transport.postEvent(
DebugEventHelper.threadContinuedEvent(