提交 9ce9fdee 编写于 作者: I isidor

debug: introduce breakpoint.idFromAdapter

fixes #2013
上级 e2e32dfe
......@@ -82,11 +82,13 @@ export interface IBreakpoint extends IEnablement {
desiredLineNumber: number;
condition: string;
verified: boolean;
idFromAdapter: number;
}
export interface IFunctionBreakpoint extends IEnablement {
name: string;
verified: boolean;
idFromAdapter: number;
}
export interface IExceptionBreakpoint extends IEnablement {
......
......@@ -282,6 +282,7 @@ export class Breakpoint implements debug.IBreakpoint {
public lineNumber: number;
public verified: boolean;
public idFromAdapter: number;
private id: string;
constructor(public source: Source, public desiredLineNumber: number, public enabled: boolean, public condition: string) {
......@@ -302,6 +303,7 @@ export class FunctionBreakpoint implements debug.IFunctionBreakpoint {
private id: string;
public verified: boolean;
public idFromAdapter: number;
constructor(public name: string, public enabled: boolean) {
this.verified = false;
......@@ -412,6 +414,7 @@ export class Model extends ee.EventEmitter implements debug.IModel {
if (bpData) {
bp.lineNumber = bpData.line;
bp.verified = bpData.verified;
bp.idFromAdapter = bpData.id;
}
});
this.emit(debug.ModelEvents.BREAKPOINTS_UPDATED);
......@@ -447,12 +450,13 @@ export class Model extends ee.EventEmitter implements debug.IModel {
this.emit(debug.ModelEvents.BREAKPOINTS_UPDATED);
}
public updateFunctionBreakpoints(data: { [id: string]: { name?: string, verified?: boolean } }): void {
public updateFunctionBreakpoints(data: { [id: string]: { name?: string, verified?: boolean; id?: number } }): void {
this.functionBreakpoints.forEach(fbp => {
const fbpData = data[fbp.getId()];
if (fbpData) {
fbp.name = fbpData.name || fbp.name;
fbp.verified = fbpData.verified;
fbp.idFromAdapter = fbpData.id;
}
});
......
......@@ -291,11 +291,11 @@ export class DebugService extends ee.EventEmitter implements debug.IDebugService
this.toDispose.push(this.session.addListener2(debug.SessionEvents.BREAKPOINT, (event: DebugProtocol.BreakpointEvent) => {
const id = event.body && event.body.breakpoint ? event.body.breakpoint.id : undefined;
const breakpoint = this.model.getBreakpoints().filter(bp => bp.getId() === <any>id).pop();
const breakpoint = this.model.getBreakpoints().filter(bp => bp.idFromAdapter === id).pop();
if (breakpoint) {
this.model.updateBreakpoints({ [breakpoint.getId()]: event.body.breakpoint });
} else {
const functionBreakpoint = this.model.getFunctionBreakpoints().filter(bp => bp.getId() === <any>id).pop();
const functionBreakpoint = this.model.getFunctionBreakpoints().filter(bp => bp.idFromAdapter === id).pop();
if (functionBreakpoint) {
this.model.updateFunctionBreakpoints({ [functionBreakpoint.getId()]: event.body.breakpoint });
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册