roku-debug 0.12.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/dist/FileUtils.d.ts +8 -0
- package/dist/FileUtils.js +29 -3
- package/dist/FileUtils.js.map +1 -1
- package/dist/adapters/DebugProtocolAdapter.d.ts +7 -1
- package/dist/adapters/DebugProtocolAdapter.js +55 -3
- package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
- package/dist/adapters/TelnetAdapter.d.ts +16 -0
- package/dist/adapters/TelnetAdapter.js +4 -0
- package/dist/adapters/TelnetAdapter.js.map +1 -1
- package/dist/debugProtocol/Constants.d.ts +29 -1
- package/dist/debugProtocol/Constants.js +30 -1
- package/dist/debugProtocol/Constants.js.map +1 -1
- package/dist/debugProtocol/Debugger.d.ts +11 -5
- package/dist/debugProtocol/Debugger.js +39 -14
- package/dist/debugProtocol/Debugger.js.map +1 -1
- package/dist/debugProtocol/responses/ListBreakpointsResponse.d.ts +2 -1
- package/dist/debugProtocol/responses/ListBreakpointsResponse.js +1 -1
- package/dist/debugProtocol/responses/ListBreakpointsResponse.js.map +1 -1
- package/dist/debugSession/BrightScriptDebugSession.d.ts +8 -2
- package/dist/debugSession/BrightScriptDebugSession.js +74 -31
- package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
- package/dist/debugSession/Events.d.ts +7 -0
- package/dist/debugSession/Events.js +8 -1
- package/dist/debugSession/Events.js.map +1 -1
- package/dist/interfaces.d.ts +4 -0
- package/dist/managers/ActionQueue.d.ts +9 -0
- package/dist/managers/ActionQueue.js +38 -0
- package/dist/managers/ActionQueue.js.map +1 -0
- package/dist/managers/BreakpointManager.d.ts +128 -27
- package/dist/managers/BreakpointManager.js +294 -89
- package/dist/managers/BreakpointManager.js.map +1 -1
- package/dist/managers/FileManager.js +3 -3
- package/dist/managers/FileManager.js.map +1 -1
- package/dist/managers/LocationManager.js +1 -1
- package/dist/managers/LocationManager.js.map +1 -1
- package/dist/managers/ProjectManager.d.ts +4 -6
- package/dist/managers/ProjectManager.js +22 -30
- package/dist/managers/ProjectManager.js.map +1 -1
- package/dist/util.js +1 -4
- package/dist/util.js.map +1 -1
- package/package.json +3 -3
- package/roku-debug-0.14.0.tgz +0 -0
- package/roku-debug-0.12.2.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/debugProtocol/Constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC5B,2EAAc,CAAA;IACd,yEAAa,CAAA;IACb,iFAAiB,CAAA;AACrB,CAAC,EAJW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAI/B;AAED,IAAY,QAYX;AAZD,WAAY,QAAQ;IAChB,uCAAQ,CAAA;IACR,+CAAY,CAAA;IACZ,6CAAW,CAAA;IACX,mDAAc,CAAA;IACd,iDAAa,CAAA;IACb,uCAAQ,CAAA;IACR,6DAAmB,CAAA;IACnB,+DAAoB,CAAA;IACpB,mEAAsB,CAAA;IACtB,8CAAY,CAAA;IACZ,yDAAkB,CAAA;AACtB,CAAC,EAZW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAYnB;AAED,IAAY,SAKX;AALD,WAAY,SAAS;IACjB,6DAAkB,CAAA;IAClB,6DAAkB,CAAA;IAClB,2DAAiB,CAAA;IACjB,6DAAkB,CAAA;AACtB,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB;AAED,yBAAyB;AACzB,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,yCAAM,CAAA;IACN,uDAAa,CAAA;IACb,uEAAqB,CAAA;IACrB,+DAAiB,CAAA;IACjB,2DAAe,CAAA;IACf,6DAAgB,CAAA;AACpB,CAAC,EAPW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAOtB;AAED,IAAY,YAOX;AAPD,WAAY,YAAY;IACpB,yDAAa,CAAA;IACb,6DAAe,CAAA;IACf,6DAAe,CAAA;IACf,mEAAkB,CAAA;IAClB,iDAAS,CAAA;IACT,iEAAiB,CAAA;AACrB,CAAC,EAPW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAOvB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACpB,iDAAS,CAAA;IACT,mEAAkB,CAAA;IAClB,6EAAuB,CAAA;IACvB,qEAAmB,CAAA;AACvB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"Constants.js","sourceRoot":"","sources":["../../src/debugProtocol/Constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,6 @@ export declare class Debugger {
|
|
|
21
21
|
private controllerClient;
|
|
22
22
|
private ioClient;
|
|
23
23
|
private unhandledData;
|
|
24
|
-
private firstRunContinueFired;
|
|
25
24
|
private stopped;
|
|
26
25
|
private totalRequests;
|
|
27
26
|
private activeRequests;
|
|
@@ -51,6 +50,17 @@ export declare class Debugger {
|
|
|
51
50
|
private step;
|
|
52
51
|
threads(): Promise<ThreadsResponse>;
|
|
53
52
|
stackTrace(threadIndex?: number): Promise<StackTraceResponse>;
|
|
53
|
+
/**
|
|
54
|
+
* @param variablePathEntries One or more path entries to the variable to be inspected. E.g., m.top.myObj["someKey"] can be accessed with ["m","top","myobj","\"someKey\""].
|
|
55
|
+
*
|
|
56
|
+
* If no path is specified, the variables accessible from the specified stack frame are returned.
|
|
57
|
+
*
|
|
58
|
+
* Starting in protocol v3.1.0, The keys for indexed gets (i.e. obj["key"]) should be wrapped in quotes so they can be handled in a case-sensitive fashion (if applicable on device).
|
|
59
|
+
* All non-quoted keys (i.e. strings without leading and trailing quotes inside them) will be treated as case-insensitive).
|
|
60
|
+
* @param getChildKeys If set, VARIABLES response include the child keys for container types like lists and associative arrays
|
|
61
|
+
* @param stackFrameIndex 0 = first function called, nframes-1 = last function. This indexing does not match the order of the frames returned from the STACKTRACE command
|
|
62
|
+
* @param threadIndex the index (or perhaps ID?) of the thread to get variables for
|
|
63
|
+
*/
|
|
54
64
|
getVariables(variablePathEntries?: Array<string>, getChildKeys?: boolean, stackFrameIndex?: number, threadIndex?: number): Promise<VariableResponse>;
|
|
55
65
|
executeCommand(sourceCode: string, stackFrameIndex?: number, threadIndex?: number): Promise<ExecuteResponseV3>;
|
|
56
66
|
addBreakpoints(breakpoints: BreakpointSpec[]): Promise<AddBreakpointsResponse>;
|
|
@@ -89,10 +99,6 @@ export interface ConstructorOptions {
|
|
|
89
99
|
* The host/ip address of the Roku
|
|
90
100
|
*/
|
|
91
101
|
host: string;
|
|
92
|
-
/**
|
|
93
|
-
* If true, the application being debugged will stop on the first line of the program.
|
|
94
|
-
*/
|
|
95
|
-
stopOnEntry?: boolean;
|
|
96
102
|
/**
|
|
97
103
|
* The port number used to send all debugger commands. This is static/unchanging for Roku devices,
|
|
98
104
|
* but is configurable here to support unit testing or alternate runtimes (i.e. https://www.npmjs.com/package/brs)
|
|
@@ -22,14 +22,12 @@ class Debugger {
|
|
|
22
22
|
this.connectedToIoPort = false;
|
|
23
23
|
this.watchPacketLength = false;
|
|
24
24
|
this.emitter = new EventEmitter();
|
|
25
|
-
this.firstRunContinueFired = false;
|
|
26
25
|
this.stopped = false;
|
|
27
26
|
this.totalRequests = 0;
|
|
28
27
|
this.activeRequests = {};
|
|
29
28
|
this.options = {
|
|
30
29
|
controllerPort: 8081,
|
|
31
30
|
host: undefined,
|
|
32
|
-
stopOnEntry: false,
|
|
33
31
|
//override the defaults with the options from parameters
|
|
34
32
|
...options !== null && options !== void 0 ? options : {}
|
|
35
33
|
};
|
|
@@ -179,16 +177,49 @@ class Debugger {
|
|
|
179
177
|
return this.makeRequest(buffer, Constants_1.COMMANDS.STACKTRACE);
|
|
180
178
|
}
|
|
181
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* @param variablePathEntries One or more path entries to the variable to be inspected. E.g., m.top.myObj["someKey"] can be accessed with ["m","top","myobj","\"someKey\""].
|
|
182
|
+
*
|
|
183
|
+
* If no path is specified, the variables accessible from the specified stack frame are returned.
|
|
184
|
+
*
|
|
185
|
+
* Starting in protocol v3.1.0, The keys for indexed gets (i.e. obj["key"]) should be wrapped in quotes so they can be handled in a case-sensitive fashion (if applicable on device).
|
|
186
|
+
* All non-quoted keys (i.e. strings without leading and trailing quotes inside them) will be treated as case-insensitive).
|
|
187
|
+
* @param getChildKeys If set, VARIABLES response include the child keys for container types like lists and associative arrays
|
|
188
|
+
* @param stackFrameIndex 0 = first function called, nframes-1 = last function. This indexing does not match the order of the frames returned from the STACKTRACE command
|
|
189
|
+
* @param threadIndex the index (or perhaps ID?) of the thread to get variables for
|
|
190
|
+
*/
|
|
182
191
|
async getVariables(variablePathEntries = [], getChildKeys = true, stackFrameIndex = this.stackFrameIndex, threadIndex = this.primaryThread) {
|
|
183
192
|
if (this.stopped && threadIndex > -1) {
|
|
193
|
+
//starting in protocol v3.1.0, it supports marking certain path items as case-insensitive (i.e. parts of DottedGet expressions)
|
|
194
|
+
const sendCaseInsensitiveData = semver.satisfies(this.protocolVersion, '>=3.1.0') && variablePathEntries.length > 0;
|
|
184
195
|
let buffer = new smart_buffer_1.SmartBuffer({ size: 17 });
|
|
185
|
-
|
|
196
|
+
let flags = 0;
|
|
197
|
+
if (getChildKeys) {
|
|
198
|
+
// eslint-disable-next-line no-bitwise
|
|
199
|
+
flags |= Constants_1.VARIABLE_REQUEST_FLAGS.GET_CHILD_KEYS;
|
|
200
|
+
}
|
|
201
|
+
if (sendCaseInsensitiveData) {
|
|
202
|
+
// eslint-disable-next-line no-bitwise
|
|
203
|
+
flags |= Constants_1.VARIABLE_REQUEST_FLAGS.CASE_SENSITIVITY_OPTIONS;
|
|
204
|
+
}
|
|
205
|
+
buffer.writeUInt8(flags); // variable_request_flags
|
|
186
206
|
buffer.writeUInt32LE(threadIndex); // thread_index
|
|
187
207
|
buffer.writeUInt32LE(stackFrameIndex); // stack_frame_index
|
|
188
208
|
buffer.writeUInt32LE(variablePathEntries.length); // variable_path_len
|
|
189
|
-
variablePathEntries.forEach(
|
|
190
|
-
|
|
209
|
+
variablePathEntries.forEach(entry => {
|
|
210
|
+
if (entry.startsWith('"') && entry.endsWith('"')) {
|
|
211
|
+
//remove leading and trailing quotes
|
|
212
|
+
entry = entry.substring(1, entry.length - 1);
|
|
213
|
+
}
|
|
214
|
+
buffer.writeStringNT(entry); // variable_path_entries - optional
|
|
191
215
|
});
|
|
216
|
+
if (sendCaseInsensitiveData) {
|
|
217
|
+
variablePathEntries.forEach(entry => {
|
|
218
|
+
buffer.writeUInt8(
|
|
219
|
+
//0 means case SENSITIVE lookup, 1 means case INsensitive lookup
|
|
220
|
+
entry.startsWith('"') ? 0 : 1);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
192
223
|
return this.makeRequest(buffer, Constants_1.COMMANDS.VARIABLES, variablePathEntries);
|
|
193
224
|
}
|
|
194
225
|
}
|
|
@@ -284,8 +315,7 @@ class Debugger {
|
|
|
284
315
|
case __1.UPDATE_TYPES.THREAD_ATTACHED:
|
|
285
316
|
let debuggerUpdateThreads = new responses_1.UpdateThreadsResponse(slicedBuffer);
|
|
286
317
|
if (debuggerUpdateThreads.success) {
|
|
287
|
-
|
|
288
|
-
void this.handleThreadsUpdate(debuggerUpdateThreads);
|
|
318
|
+
this.handleThreadsUpdate(debuggerUpdateThreads);
|
|
289
319
|
this.removedProcessedBytes(debuggerUpdateThreads, slicedBuffer, packetLength);
|
|
290
320
|
return true;
|
|
291
321
|
}
|
|
@@ -444,17 +474,12 @@ class Debugger {
|
|
|
444
474
|
}
|
|
445
475
|
return false;
|
|
446
476
|
}
|
|
447
|
-
|
|
477
|
+
handleThreadsUpdate(update) {
|
|
448
478
|
this.stopped = true;
|
|
449
479
|
let stopReason = update.data.stopReason;
|
|
450
480
|
let eventName = stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR ? 'runtime-error' : 'suspend';
|
|
451
481
|
if (update.updateType === __1.UPDATE_TYPES.ALL_THREADS_STOPPED) {
|
|
452
|
-
if (
|
|
453
|
-
this.logger.log('Sending first run continue command');
|
|
454
|
-
await this.continue();
|
|
455
|
-
this.firstRunContinueFired = true;
|
|
456
|
-
}
|
|
457
|
-
else if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
|
|
482
|
+
if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
|
|
458
483
|
this.primaryThread = update.data.primaryThreadIndex;
|
|
459
484
|
this.stackFrameIndex = 0;
|
|
460
485
|
this.emit(eventName, update);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Debugger.js","sourceRoot":"","sources":["../../src/debugProtocol/Debugger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Debugger.js","sourceRoot":"","sources":["../../src/debugProtocol/Debugger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { SmartBuffer } from 'smart-buffer';
|
|
3
|
+
import { ERROR_CODES } from '../Constants';
|
|
3
4
|
export declare class ListBreakpointsResponse {
|
|
4
5
|
constructor(buffer: Buffer);
|
|
5
6
|
success: boolean;
|
|
@@ -8,7 +9,7 @@ export declare class ListBreakpointsResponse {
|
|
|
8
9
|
numBreakpoints: number;
|
|
9
10
|
breakpoints: BreakpointInfo[];
|
|
10
11
|
data: number;
|
|
11
|
-
errorCode:
|
|
12
|
+
errorCode: ERROR_CODES;
|
|
12
13
|
}
|
|
13
14
|
export declare class BreakpointInfo {
|
|
14
15
|
constructor(bufferReader: SmartBuffer);
|
|
@@ -18,7 +18,7 @@ class ListBreakpointsResponse {
|
|
|
18
18
|
this.requestId = bufferReader.readUInt32LE(); // request_id
|
|
19
19
|
// Any request id less then one is an update and we should not process it here
|
|
20
20
|
if (this.requestId > 0) {
|
|
21
|
-
this.errorCode =
|
|
21
|
+
this.errorCode = bufferReader.readUInt32LE();
|
|
22
22
|
this.numBreakpoints = bufferReader.readUInt32LE(); // num_breakpoints - The number of breakpoints in the breakpoints array.
|
|
23
23
|
// build the list of BreakpointInfo
|
|
24
24
|
for (let i = 0; i < this.numBreakpoints; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListBreakpointsResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ListBreakpointsResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAA2C;AAE3C,MAAa,uBAAuB;IAEhC,YAAY,MAAc;QA2BnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QAEf,gBAAW,GAAG,EAAsB,CAAC;QACrC,SAAI,GAAG,CAAC,CAAC,CAAC;QAjCb,gCAAgC;QAChC,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAAI,EAAE,EAAE;YAC1B,IAAI;gBACA,IAAI,YAAY,GAAG,0BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAE3D,8EAA8E;gBAC9E,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"ListBreakpointsResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ListBreakpointsResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAA2C;AAE3C,MAAa,uBAAuB;IAEhC,YAAY,MAAc;QA2BnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QAEf,gBAAW,GAAG,EAAsB,CAAC;QACrC,SAAI,GAAG,CAAC,CAAC,CAAC;QAjCb,gCAAgC;QAChC,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAAI,EAAE,EAAE;YAC1B,IAAI;gBACA,IAAI,YAAY,GAAG,0BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAE3D,8EAA8E;gBAC9E,IAAI,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE;oBACpB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;oBAC7C,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,wEAAwE;oBAE3H,mCAAmC;oBACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE;wBAC1C,IAAI,cAAc,GAAG,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;wBACtD,wDAAwD;wBACxD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;qBACzC;oBAED,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;oBAC1C,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;iBACpE;aACJ;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CAUJ;AAtCD,0DAsCC;AAED,MAAa,cAAc;IACvB,YAAY,YAAyB;QAiB9B,YAAO,GAAG,KAAK,CAAC;QAhBnB,+JAA+J;QAC/J,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAChD,2EAA2E;QAC3E,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;QAE7C,IAAI,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;YACvB,+DAA+D;YAC/D,qEAAqE;YACrE,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;SAC/C;QACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;IACjC,CAAC;IAID;;OAEG;IACH,IAAW,SAAS;QAChB,OAAO,uBAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;CAEJ;AA5BD,wCA4BC"}
|
|
@@ -9,6 +9,7 @@ import { LocationManager } from '../managers/LocationManager';
|
|
|
9
9
|
import { BreakpointManager } from '../managers/BreakpointManager';
|
|
10
10
|
export declare class BrightScriptDebugSession extends BaseDebugSession {
|
|
11
11
|
constructor();
|
|
12
|
+
private onDeviceVerifiedBreakpoints;
|
|
12
13
|
logger: import("@rokucommunity/logger/dist/Logger").Logger;
|
|
13
14
|
/**
|
|
14
15
|
* A sequence used to help identify log statements for requests
|
|
@@ -31,7 +32,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
|
|
|
31
32
|
private variables;
|
|
32
33
|
private variableHandles;
|
|
33
34
|
private rokuAdapter;
|
|
34
|
-
private enableDebugProtocol;
|
|
35
|
+
private get enableDebugProtocol();
|
|
35
36
|
private getRokuAdapter;
|
|
36
37
|
private launchConfiguration;
|
|
37
38
|
private initRequestArgs;
|
|
@@ -40,6 +41,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
|
|
|
40
41
|
* to interrogate the features the debug adapter provides.
|
|
41
42
|
*/
|
|
42
43
|
initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void;
|
|
44
|
+
private showPopupMessage;
|
|
43
45
|
launchRequest(response: DebugProtocol.LaunchResponse, config: LaunchConfiguration): Promise<void>;
|
|
44
46
|
/**
|
|
45
47
|
* Send log output to the "client" (i.e. vscode)
|
|
@@ -65,7 +67,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
|
|
|
65
67
|
/**
|
|
66
68
|
* Called every time a breakpoint is created, modified, or deleted, for each file. This receives the entire list of breakpoints every time.
|
|
67
69
|
*/
|
|
68
|
-
setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): void
|
|
70
|
+
setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): Promise<void>;
|
|
69
71
|
protected exceptionInfoRequest(response: DebugProtocol.ExceptionInfoResponse, args: DebugProtocol.ExceptionInfoArguments): void;
|
|
70
72
|
protected threadsRequest(response: DebugProtocol.ThreadsResponse): Promise<void>;
|
|
71
73
|
protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, args: DebugProtocol.StackTraceArguments): Promise<void>;
|
|
@@ -93,6 +95,10 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
|
|
|
93
95
|
protected disconnectRequest(response: DebugProtocol.DisconnectResponse, args: DebugProtocol.DisconnectArguments, request?: DebugProtocol.Request): Promise<void>;
|
|
94
96
|
private createRokuAdapter;
|
|
95
97
|
protected restartRequest(response: DebugProtocol.RestartResponse, args: DebugProtocol.RestartArguments, request?: DebugProtocol.Request): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Used to track whether the entry breakpoint has already been handled
|
|
100
|
+
*/
|
|
101
|
+
private entryBreakpointWasHandled;
|
|
96
102
|
/**
|
|
97
103
|
* Registers the main events for the RokuAdapter
|
|
98
104
|
*/
|
|
@@ -41,6 +41,10 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
41
41
|
this.variables = {};
|
|
42
42
|
this.variableHandles = new vscode_debugadapter_1.Handles();
|
|
43
43
|
this.evaluateRequestPromise = Promise.resolve();
|
|
44
|
+
/**
|
|
45
|
+
* Used to track whether the entry breakpoint has already been handled
|
|
46
|
+
*/
|
|
47
|
+
this.entryBreakpointWasHandled = false;
|
|
44
48
|
// this debugger uses one-based lines and columns
|
|
45
49
|
this.setDebuggerLinesStartAt1(true);
|
|
46
50
|
this.setDebuggerColumnsStartAt1(true);
|
|
@@ -50,8 +54,29 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
50
54
|
this.sourceMapManager = new SourceMapManager_1.SourceMapManager();
|
|
51
55
|
this.locationManager = new LocationManager_1.LocationManager(this.sourceMapManager);
|
|
52
56
|
this.breakpointManager = new BreakpointManager_1.BreakpointManager(this.sourceMapManager, this.locationManager);
|
|
57
|
+
//send newly-verified breakpoints to vscode
|
|
58
|
+
this.breakpointManager.on('breakpoints-verified', (data) => this.onDeviceVerifiedBreakpoints(data));
|
|
53
59
|
this.projectManager = new ProjectManager_1.ProjectManager(this.breakpointManager, this.locationManager);
|
|
54
60
|
}
|
|
61
|
+
onDeviceVerifiedBreakpoints(data) {
|
|
62
|
+
this.logger.info('Sending verified device breakpoints to client', data);
|
|
63
|
+
//send all verified breakpoints to the client
|
|
64
|
+
for (const breakpoint of data.breakpoints) {
|
|
65
|
+
const event = {
|
|
66
|
+
line: breakpoint.line,
|
|
67
|
+
column: breakpoint.column,
|
|
68
|
+
verified: true,
|
|
69
|
+
id: breakpoint.id,
|
|
70
|
+
source: {
|
|
71
|
+
path: breakpoint.srcPath
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
this.sendEvent(new vscode_debugadapter_1.BreakpointEvent('changed', event));
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
get enableDebugProtocol() {
|
|
78
|
+
return this.launchConfiguration.enableDebugProtocol;
|
|
79
|
+
}
|
|
55
80
|
getRokuAdapter() {
|
|
56
81
|
return this.rokuAdapterDeferred.promise;
|
|
57
82
|
}
|
|
@@ -88,6 +113,9 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
88
113
|
});
|
|
89
114
|
this.logger.log('initializeRequest finished');
|
|
90
115
|
}
|
|
116
|
+
showPopupMessage(message, severity) {
|
|
117
|
+
this.sendEvent(new Events_1.PopupMessageEvent(message, severity));
|
|
118
|
+
}
|
|
91
119
|
async launchRequest(response, config) {
|
|
92
120
|
this.logger.log('[launchRequest] begin');
|
|
93
121
|
this.launchConfiguration = config;
|
|
@@ -95,9 +123,15 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
95
123
|
if (this.launchConfiguration.logLevel) {
|
|
96
124
|
logging_1.logger.logLevel = this.launchConfiguration.logLevel;
|
|
97
125
|
}
|
|
98
|
-
this.enableDebugProtocol = this.launchConfiguration.enableDebugProtocol;
|
|
99
126
|
//do a DNS lookup for the host to fix issues with roku rejecting ECP
|
|
100
|
-
|
|
127
|
+
try {
|
|
128
|
+
this.launchConfiguration.host = await util_1.util.dnsLookup(this.launchConfiguration.host);
|
|
129
|
+
}
|
|
130
|
+
catch (e) {
|
|
131
|
+
const errorMessage = `Could not resolve ip address for "${this.launchConfiguration.host}"`;
|
|
132
|
+
this.showPopupMessage(errorMessage, 'error');
|
|
133
|
+
throw e;
|
|
134
|
+
}
|
|
101
135
|
this.projectManager.launchConfiguration = this.launchConfiguration;
|
|
102
136
|
this.breakpointManager.launchConfiguration = this.launchConfiguration;
|
|
103
137
|
this.sendEvent(new Events_1.LaunchStartEvent(this.launchConfiguration));
|
|
@@ -353,10 +387,10 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
353
387
|
await this.handleEntryBreakpoint();
|
|
354
388
|
//add breakpoint lines to source files and then publish
|
|
355
389
|
util_1.util.log('Adding stop statements for active breakpoints');
|
|
356
|
-
//
|
|
357
|
-
this.
|
|
358
|
-
|
|
359
|
-
|
|
390
|
+
//write the `stop` statements to every file that has breakpoints (do for telnet, skip for debug protocol)
|
|
391
|
+
if (!this.enableDebugProtocol) {
|
|
392
|
+
await this.breakpointManager.writeBreakpointsForProject(this.projectManager.mainProject);
|
|
393
|
+
}
|
|
360
394
|
//create zip package from staging folder
|
|
361
395
|
util_1.util.log('Creating zip archive from project sources');
|
|
362
396
|
await this.projectManager.mainProject.zipPackage({ retainStagingFolder: true });
|
|
@@ -402,8 +436,10 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
402
436
|
await compLibProject.stage();
|
|
403
437
|
// Add breakpoint lines to the staging files and before publishing
|
|
404
438
|
util_1.util.log('Adding stop statements for active breakpoints in Component Libraries');
|
|
405
|
-
//write the `stop` statements to every file that has breakpoints
|
|
406
|
-
|
|
439
|
+
//write the `stop` statements to every file that has breakpoints (do for telnet, skip for debug protocol)
|
|
440
|
+
if (!this.enableDebugProtocol) {
|
|
441
|
+
await this.breakpointManager.writeBreakpointsForProject(compLibProject);
|
|
442
|
+
}
|
|
407
443
|
await compLibProject.postfixFiles();
|
|
408
444
|
await compLibProject.zipPackage({ retainStagingFolder: true });
|
|
409
445
|
});
|
|
@@ -436,30 +472,16 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
436
472
|
/**
|
|
437
473
|
* Called every time a breakpoint is created, modified, or deleted, for each file. This receives the entire list of breakpoints every time.
|
|
438
474
|
*/
|
|
439
|
-
setBreakPointsRequest(response, args) {
|
|
475
|
+
async setBreakPointsRequest(response, args) {
|
|
476
|
+
var _a;
|
|
440
477
|
let sanitizedBreakpoints = this.breakpointManager.replaceBreakpoints(args.source.path, args.breakpoints);
|
|
441
478
|
//sort the breakpoints
|
|
442
|
-
let sortedAndFilteredBreakpoints = (0, natural_orderby_1.orderBy)(sanitizedBreakpoints, [x => x.line, x => x.column])
|
|
443
|
-
//filter out the inactive breakpoints
|
|
444
|
-
.filter(x => x.isHidden === false);
|
|
479
|
+
let sortedAndFilteredBreakpoints = (0, natural_orderby_1.orderBy)(sanitizedBreakpoints, [x => x.line, x => x.column]);
|
|
445
480
|
response.body = {
|
|
446
481
|
breakpoints: sortedAndFilteredBreakpoints
|
|
447
482
|
};
|
|
448
483
|
this.sendResponse(response);
|
|
449
|
-
|
|
450
|
-
//This is disabled because I'm not sure anyone actually wants this functionality, but I didn't want to lose it.
|
|
451
|
-
// setTimeout(() => {
|
|
452
|
-
// //notify the client about every other breakpoint that was not explicitly requested here
|
|
453
|
-
// //(basically force to re-enable the `stop` breakpoints that were written into the source code by the debugger)
|
|
454
|
-
// var otherBreakpoints = sanitizedBreakpoints.filter(x => sortedAndFilteredBreakpoints.indexOf(x) === -1);
|
|
455
|
-
// for (var breakpoint of otherBreakpoints) {
|
|
456
|
-
// this.sendEvent(new BreakpointEvent('new', <DebugProtocol.Breakpoint>{
|
|
457
|
-
// line: breakpoint.line,
|
|
458
|
-
// verified: true,
|
|
459
|
-
// source: args.source
|
|
460
|
-
// }));
|
|
461
|
-
// }
|
|
462
|
-
// }, 100);
|
|
484
|
+
await ((_a = this.rokuAdapter) === null || _a === void 0 ? void 0 : _a.syncBreakpoints());
|
|
463
485
|
}
|
|
464
486
|
exceptionInfoRequest(response, args) {
|
|
465
487
|
this.logger.log('exceptionInfoRequest');
|
|
@@ -485,6 +507,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
485
507
|
this.sendResponse(response);
|
|
486
508
|
}
|
|
487
509
|
async stackTraceRequest(response, args) {
|
|
510
|
+
var _a, _b;
|
|
488
511
|
try {
|
|
489
512
|
this.logger.log('stackTraceRequest');
|
|
490
513
|
let frames = [];
|
|
@@ -495,7 +518,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
495
518
|
//the stacktrace returns function identifiers in all lower case. Try to get the actual case
|
|
496
519
|
//load the contents of the file and get the correct casing for the function identifier
|
|
497
520
|
try {
|
|
498
|
-
let functionName = this.fileManager.getCorrectFunctionNameCase(sourceLocation.filePath, debugFrame.functionIdentifier);
|
|
521
|
+
let functionName = this.fileManager.getCorrectFunctionNameCase(sourceLocation === null || sourceLocation === void 0 ? void 0 : sourceLocation.filePath, debugFrame.functionIdentifier);
|
|
499
522
|
if (functionName) {
|
|
500
523
|
//search for original function name if this is an anonymous function.
|
|
501
524
|
//anonymous function names are prefixed with $ in the stack trace (i.e. $anon_1 or $functionname_40002)
|
|
@@ -508,7 +531,11 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
508
531
|
catch (error) {
|
|
509
532
|
this.logger.error('Error correcting function identifier case', { error, sourceLocation, debugFrame });
|
|
510
533
|
}
|
|
511
|
-
|
|
534
|
+
const filePath = (_a = sourceLocation === null || sourceLocation === void 0 ? void 0 : sourceLocation.filePath) !== null && _a !== void 0 ? _a : debugFrame.filePath;
|
|
535
|
+
const frame = new vscode_debugadapter_1.StackFrame(debugFrame.frameId, `${debugFrame.functionIdentifier}`, new vscode_debugadapter_1.Source(path.basename(filePath), filePath), (_b = sourceLocation === null || sourceLocation === void 0 ? void 0 : sourceLocation.lineNumber) !== null && _b !== void 0 ? _b : debugFrame.lineNumber, 1);
|
|
536
|
+
if (!sourceLocation) {
|
|
537
|
+
frame.presentationHint = 'subtle';
|
|
538
|
+
}
|
|
512
539
|
frames.push(frame);
|
|
513
540
|
}
|
|
514
541
|
}
|
|
@@ -794,7 +821,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
794
821
|
}
|
|
795
822
|
createRokuAdapter(host) {
|
|
796
823
|
if (this.enableDebugProtocol) {
|
|
797
|
-
this.rokuAdapter = new DebugProtocolAdapter_1.DebugProtocolAdapter(this.launchConfiguration);
|
|
824
|
+
this.rokuAdapter = new DebugProtocolAdapter_1.DebugProtocolAdapter(this.launchConfiguration, this.projectManager, this.breakpointManager);
|
|
798
825
|
}
|
|
799
826
|
else {
|
|
800
827
|
this.rokuAdapter = new TelnetAdapter_1.TelnetAdapter(this.launchConfiguration);
|
|
@@ -823,6 +850,9 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
823
850
|
//when the debugger suspends (pauses for debugger input)
|
|
824
851
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
825
852
|
this.rokuAdapter.on('suspend', async () => {
|
|
853
|
+
var _a;
|
|
854
|
+
//sync breakpoints
|
|
855
|
+
await ((_a = this.rokuAdapter) === null || _a === void 0 ? void 0 : _a.syncBreakpoints());
|
|
826
856
|
this.logger.info('received "suspend" event from adapter');
|
|
827
857
|
const threads = await this.rokuAdapter.getThreads();
|
|
828
858
|
const activeThread = threads.find(x => x.isSelected);
|
|
@@ -837,6 +867,15 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
837
867
|
thread.lineNumber = stackTraceLineNumber;
|
|
838
868
|
}
|
|
839
869
|
}));
|
|
870
|
+
//if !stopOnEntry, and we haven't encountered a suspend yet, THIS is the entry breakpoint. auto-continue
|
|
871
|
+
if (!this.entryBreakpointWasHandled && !this.launchConfiguration.stopOnEntry) {
|
|
872
|
+
this.entryBreakpointWasHandled = true;
|
|
873
|
+
//if there's a user-defined breakpoint at this exact position, it needs to be handled like a regular breakpoint (i.e. suspend). So only auto-continue if there's no breakpoint here
|
|
874
|
+
if (!await this.breakpointManager.lineHasBreakpoint(this.projectManager.getAllProjects(), activeThread.filePath, activeThread.lineNumber - 1)) {
|
|
875
|
+
this.logger.info('Encountered entry breakpoint and `stopOnEntry` is disabled. Continuing...');
|
|
876
|
+
return this.rokuAdapter.continue();
|
|
877
|
+
}
|
|
878
|
+
}
|
|
840
879
|
this.clearState();
|
|
841
880
|
const event = new vscode_debugadapter_1.StoppedEvent(Events_1.StoppedEventReason.breakpoint, activeThread.threadId, '' //exception text
|
|
842
881
|
);
|
|
@@ -860,6 +899,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
860
899
|
//make the connection
|
|
861
900
|
await this.rokuAdapter.connect();
|
|
862
901
|
this.rokuAdapterDeferred.resolve(this.rokuAdapter);
|
|
902
|
+
return this.rokuAdapter;
|
|
863
903
|
}
|
|
864
904
|
getVariableFromResult(result, frameId) {
|
|
865
905
|
var _a, _b, _c, _d;
|
|
@@ -948,8 +988,11 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
|
|
|
948
988
|
* If `stopOnEntry` is enabled, register the entry breakpoint.
|
|
949
989
|
*/
|
|
950
990
|
async handleEntryBreakpoint() {
|
|
951
|
-
if (
|
|
952
|
-
|
|
991
|
+
if (!this.enableDebugProtocol) {
|
|
992
|
+
this.entryBreakpointWasHandled = true;
|
|
993
|
+
if (this.launchConfiguration.stopOnEntry) {
|
|
994
|
+
await this.projectManager.registerEntryBreakpoint(this.projectManager.mainProject.stagingFolderPath);
|
|
995
|
+
}
|
|
953
996
|
}
|
|
954
997
|
}
|
|
955
998
|
/**
|