提交 eac9adad 编写于 作者: I isidor

Fix Continue on Multithreaded programs

fixes #18195
上级 9cb6273c
......@@ -310,7 +310,7 @@ export class DebugService implements debug.IDebugService {
}));
this.toDisposeOnSessionEnd.get(session.getId()).push(session.onDidContinued(event => {
const threadId = event.body.allThreadsContinued ? undefined : event.body.threadId;
const threadId = event.body.allThreadsContinued !== false ? undefined : event.body.threadId;
this.model.clearThreads(session.getId(), false, threadId);
if (this.viewModel.focusedProcess.getId() === session.getId()) {
this.focusStackFrameAndEvaluate(null, this.viewModel.focusedProcess).done(null, errors.onUnexpectedError);
......
......@@ -54,6 +54,7 @@ export class RawDebugSession extends v8.V8Protocol implements debug.ISession {
public disconnected: boolean;
private sentPromises: TPromise<DebugProtocol.Response>[];
private capabilities: DebugProtocol.Capabilities;
private allThreadsContinued: boolean;
private _onDidInitialize: Emitter<DebugProtocol.InitializedEvent>;
private _onDidStop: Emitter<DebugProtocol.StoppedEvent>;
......@@ -80,6 +81,7 @@ export class RawDebugSession extends v8.V8Protocol implements debug.ISession {
super(id);
this.emittedStopped = false;
this.readyForBreakpoints = false;
this.allThreadsContinued = false;
this.sentPromises = [];
this._onDidInitialize = new Emitter<DebugProtocol.InitializedEvent>();
......@@ -202,6 +204,7 @@ export class RawDebugSession extends v8.V8Protocol implements debug.ISession {
this.emittedStopped = true;
this._onDidStop.fire(<DebugProtocol.StoppedEvent>event);
} else if (event.event === 'continued') {
this.allThreadsContinued = (<DebugProtocol.ContinuedEvent>event).body.allThreadsContinued = false ? false : true;
this._onDidContinued.fire(<DebugProtocol.ContinuedEvent>event);
} else if (event.event === 'thread') {
this._onDidThread.fire(<DebugProtocol.ThreadEvent>event);
......@@ -270,7 +273,7 @@ export class RawDebugSession extends v8.V8Protocol implements debug.ISession {
public continue(args: DebugProtocol.ContinueArguments): TPromise<DebugProtocol.ContinueResponse> {
return this.send('continue', args).then(response => {
this.fireFakeContinued(args.threadId);
this.fireFakeContinued(args.threadId, this.allThreadsContinued);
return response;
});
}
......@@ -402,12 +405,13 @@ export class RawDebugSession extends v8.V8Protocol implements debug.ISession {
}
}
private fireFakeContinued(threadId: number): void {
private fireFakeContinued(threadId: number, allThreadsContinued = false): void {
this._onDidContinued.fire({
type: 'event',
event: 'continued',
body: {
threadId
threadId,
allThreadsContinued
},
seq: undefined
});
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册