roku-debug 0.14.0 → 0.15.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.
Files changed (32) hide show
  1. package/CHANGELOG.md +34 -1
  2. package/dist/adapters/DebugProtocolAdapter.d.ts +5 -2
  3. package/dist/adapters/DebugProtocolAdapter.js +3 -1
  4. package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
  5. package/dist/adapters/TelnetAdapter.d.ts +3 -0
  6. package/dist/adapters/TelnetAdapter.js.map +1 -1
  7. package/dist/debugProtocol/Constants.d.ts +12 -1
  8. package/dist/debugProtocol/Constants.js +11 -0
  9. package/dist/debugProtocol/Constants.js.map +1 -1
  10. package/dist/debugProtocol/Debugger.d.ts +44 -2
  11. package/dist/debugProtocol/Debugger.js +112 -49
  12. package/dist/debugProtocol/Debugger.js.map +1 -1
  13. package/dist/debugProtocol/responses/BreakpointErrorUpdateResponse.d.ts +32 -0
  14. package/dist/debugProtocol/responses/BreakpointErrorUpdateResponse.js +67 -0
  15. package/dist/debugProtocol/responses/BreakpointErrorUpdateResponse.js.map +1 -0
  16. package/dist/debugProtocol/responses/VariableResponse.js +5 -0
  17. package/dist/debugProtocol/responses/VariableResponse.js.map +1 -1
  18. package/dist/debugSession/BrightScriptDebugSession.d.ts +1 -0
  19. package/dist/debugSession/BrightScriptDebugSession.js +39 -10
  20. package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
  21. package/dist/managers/BreakpointManager.d.ts +4 -0
  22. package/dist/managers/BreakpointManager.js +2 -1
  23. package/dist/managers/BreakpointManager.js.map +1 -1
  24. package/dist/managers/ProjectManager.d.ts +4 -0
  25. package/dist/managers/ProjectManager.js +6 -8
  26. package/dist/managers/ProjectManager.js.map +1 -1
  27. package/dist/util.d.ts +9 -0
  28. package/dist/util.js +31 -0
  29. package/dist/util.js.map +1 -1
  30. package/package.json +2 -2
  31. package/roku-debug-0.15.0.tgz +0 -0
  32. package/roku-debug-0.14.0.tgz +0 -0
@@ -8,11 +8,12 @@ const responses_1 = require("./responses");
8
8
  const Constants_1 = require("./Constants");
9
9
  const smart_buffer_1 = require("smart-buffer");
10
10
  const logging_1 = require("../logging");
11
- const __1 = require("..");
12
11
  const ExecuteResponseV3_1 = require("./responses/ExecuteResponseV3");
13
12
  const ListBreakpointsResponse_1 = require("./responses/ListBreakpointsResponse");
14
13
  const AddBreakpointsResponse_1 = require("./responses/AddBreakpointsResponse");
15
14
  const RemoveBreakpointsResponse_1 = require("./responses/RemoveBreakpointsResponse");
15
+ const util_1 = require("../util");
16
+ const BreakpointErrorUpdateResponse_1 = require("./responses/BreakpointErrorUpdateResponse");
16
17
  class Debugger {
17
18
  constructor(options) {
18
19
  this.logger = logging_1.logger.createLogger(`[${Debugger.name}]`);
@@ -36,8 +37,25 @@ class Debugger {
36
37
  return this.stopped;
37
38
  }
38
39
  /**
39
- * Get a promise that resolves after an event occurs exactly once
40
+ * Prior to protocol v3.1.0, the Roku device would regularly set the wrong thread as "active",
41
+ * so this flag lets us know if we should use our better-than-nothing workaround
40
42
  */
43
+ get enableThreadHoppingWorkaround() {
44
+ return semver.satisfies(this.protocolVersion, '<3.1.0');
45
+ }
46
+ /**
47
+ * Starting in protocol v3.1.0, component libary breakpoints must be added in the format `lib:/<library_name>/<filepath>`, but prior they didn't require this.
48
+ * So this flag tells us which format to support
49
+ */
50
+ get enableComponentLibrarySpecificBreakpoints() {
51
+ return semver.satisfies(this.protocolVersion, '>=3.1.0');
52
+ }
53
+ /**
54
+ * Starting in protocol v3.1.0, breakpoints can support conditional expressions. This flag indicates whether the current sessuion supports that functionality.
55
+ */
56
+ get supportsConditionalBreakpoints() {
57
+ return semver.satisfies(this.protocolVersion, '>=3.1.0');
58
+ }
41
59
  once(eventName) {
42
60
  return new Promise((resolve) => {
43
61
  const disconnect = this.on(eventName, (...args) => {
@@ -67,19 +85,38 @@ class Debugger {
67
85
  this.logger.log('connect', this.options);
68
86
  const debugSetupEnd = 'total socket debugger setup time';
69
87
  console.time(debugSetupEnd);
70
- // Create a new TCP client.`
71
- this.controllerClient = new Net.Socket();
72
- // Send a connection request to the server.
73
- this.controllerClient.connect({ port: this.options.controllerPort, host: this.options.host }, () => {
74
- // If there is no error, the server has accepted the request and created a new
75
- // socket dedicated to us.
76
- this.logger.log('TCP connection established with the server.');
77
- // The client can also receive data from the server by reading from its socket.
78
- // The client can now send data to the server by writing to its socket.
79
- let buffer = new smart_buffer_1.SmartBuffer({ size: Buffer.byteLength(Debugger.DEBUGGER_MAGIC) + 1 }).writeStringNT(Debugger.DEBUGGER_MAGIC).toBuffer();
80
- this.logger.log('Sending magic to server');
81
- this.controllerClient.write(buffer);
88
+ this.controllerClient = await new Promise((resolve) => {
89
+ var _a;
90
+ const pendingSockets = new Set();
91
+ util_1.util.setInterval((cancelInterval) => {
92
+ const socket = new Net.Socket();
93
+ pendingSockets.add(socket);
94
+ socket.once('error', (error) => {
95
+ console.error('Encountered an error connecting to the debug protocol socket. Ignoring and will try again soon', error);
96
+ socket === null || socket === void 0 ? void 0 : socket.destroy();
97
+ pendingSockets.delete(socket);
98
+ });
99
+ socket.connect({ port: this.options.controllerPort, host: this.options.host }, () => {
100
+ this.logger.debug(`Connected to debug protocol controller port. Socket ${[...pendingSockets].indexOf(socket)} of ${pendingSockets.size} was the winner`);
101
+ //this socket successfully connected.
102
+ //remove this socket from the list of pending sockets
103
+ pendingSockets.delete(socket);
104
+ //clean up all remaining pending sockets
105
+ for (const pendingSocket of pendingSockets) {
106
+ pendingSocket === null || pendingSocket === void 0 ? void 0 : pendingSocket.destroy();
107
+ }
108
+ resolve(socket);
109
+ cancelInterval();
110
+ });
111
+ }, (_a = this.options.controllerConnectInterval) !== null && _a !== void 0 ? _a : 250);
82
112
  });
113
+ // If there is no error, the server has accepted the request and created a new dedicated socket
114
+ this.logger.log('TCP connection established with the server.');
115
+ // The client can also receive data from the server by reading from its socket.
116
+ // The client can now send data to the server by writing to its socket.
117
+ let buffer = new smart_buffer_1.SmartBuffer({ size: Buffer.byteLength(Debugger.DEBUGGER_MAGIC) + 1 }).writeStringNT(Debugger.DEBUGGER_MAGIC).toBuffer();
118
+ this.logger.log('Sending magic to server');
119
+ this.controllerClient.write(buffer);
83
120
  this.controllerClient.on('data', (buffer) => {
84
121
  if (this.unhandledData) {
85
122
  this.unhandledData = Buffer.concat([this.unhandledData, buffer]);
@@ -98,19 +135,9 @@ class Debugger {
98
135
  console.error(`TCP connection error`, error);
99
136
  this.shutdown('close');
100
137
  });
101
- let connectPromise = new Promise((resolve, reject) => {
102
- let disconnect = this.on('connected', (connected) => {
103
- disconnect();
104
- console.timeEnd(debugSetupEnd);
105
- if (connected) {
106
- resolve(connected);
107
- }
108
- else {
109
- reject(connected);
110
- }
111
- });
112
- });
113
- return connectPromise;
138
+ const isConnected = await this.once('connected');
139
+ console.timeEnd(debugSetupEnd);
140
+ return isConnected;
114
141
  }
115
142
  async continue() {
116
143
  if (this.stopped) {
@@ -143,7 +170,7 @@ class Debugger {
143
170
  if (this.stopped) {
144
171
  this.stopped = false;
145
172
  let stepResult = await this.makeRequest(buffer, Constants_1.COMMANDS.STEP);
146
- if (stepResult.errorCode === __1.ERROR_CODES.OK) {
173
+ if (stepResult.errorCode === Constants_1.ERROR_CODES.OK) {
147
174
  // this.stopped = true;
148
175
  // this.emit('suspend');
149
176
  }
@@ -157,16 +184,23 @@ class Debugger {
157
184
  async threads() {
158
185
  if (this.stopped) {
159
186
  let result = await this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.THREADS);
160
- //TODO uncomment this once the device starts correctly reporting `isPrimary`. Right now our logic is better at tracking the primary thread.
161
- // if (result.errorCode === ERROR_CODES.OK) {
162
- // for (let i = 0; i < result.threadsCount; i++) {
163
- // let thread = result.threads[i];
164
- // if (thread.isPrimary) {
165
- // this.primaryThread = i;
166
- // break;
167
- // }
168
- // }
169
- // }
187
+ if (result.errorCode === Constants_1.ERROR_CODES.OK) {
188
+ //older versions of the debug protocol had issues with maintaining the active thread, so our workaround is to keep track of it elsewhere
189
+ if (this.enableThreadHoppingWorkaround) {
190
+ //ignore the `isPrimary` flag on threads
191
+ this.logger.debug(`Ignoring the 'isPrimary' flag from threads because protocol version ${this.protocolVersion} and lower has a bug`);
192
+ }
193
+ else {
194
+ //trust the debug protocol's `isPrimary` flag on threads
195
+ for (let i = 0; i < result.threadsCount; i++) {
196
+ let thread = result.threads[i];
197
+ if (thread.isPrimary) {
198
+ this.primaryThread = i;
199
+ break;
200
+ }
201
+ }
202
+ }
203
+ }
170
204
  return result;
171
205
  }
172
206
  }
@@ -234,16 +268,35 @@ class Debugger {
234
268
  }
235
269
  }
236
270
  async addBreakpoints(breakpoints) {
271
+ const { enableComponentLibrarySpecificBreakpoints } = this;
237
272
  if ((breakpoints === null || breakpoints === void 0 ? void 0 : breakpoints.length) > 0) {
238
273
  let buffer = new smart_buffer_1.SmartBuffer();
274
+ //set the `FLAGS` value if supported
275
+ if (this.supportsConditionalBreakpoints) {
276
+ buffer.writeUInt32LE(0); // flags - Should always be passed as 0. Unused, reserved for future use.
277
+ }
239
278
  buffer.writeUInt32LE(breakpoints.length); // num_breakpoints - The number of breakpoints in the breakpoints array.
240
279
  breakpoints.forEach((breakpoint) => {
241
- var _a;
242
- buffer.writeStringNT(breakpoint.filePath); // file_path - The path of the source file where the breakpoint is to be inserted.
280
+ var _a, _b;
281
+ let { filePath } = breakpoint;
282
+ //protocol >= v3.1.0 requires complib breakpoints have a special prefix
283
+ if (enableComponentLibrarySpecificBreakpoints) {
284
+ if (breakpoint.componentLibraryName) {
285
+ filePath = filePath.replace(/^pkg:\//i, `lib:/${breakpoint.componentLibraryName}/`);
286
+ }
287
+ }
288
+ buffer.writeStringNT(filePath); // file_path - The path of the source file where the breakpoint is to be inserted.
243
289
  buffer.writeUInt32LE(breakpoint.lineNumber); // line_number - The line number in the channel application code where the breakpoint is to be executed.
244
290
  buffer.writeUInt32LE((_a = breakpoint.hitCount) !== null && _a !== void 0 ? _a : 0); // ignore_count - The number of times to ignore the breakpoint condition before executing the breakpoint. This number is decremented each time the channel application reaches the breakpoint.
291
+ //if the protocol supports conditional breakpoints, add any present condition
292
+ if (this.supportsConditionalBreakpoints) {
293
+ //There's a bug in 3.1 where empty conditional expressions would crash the breakpoints, so just default to `true` which always succeeds
294
+ buffer.writeStringNT((_b = breakpoint.conditionalExpression) !== null && _b !== void 0 ? _b : 'true'); // cond_expr - the condition that must evaluate to `true` in order to hit the breakpoint
295
+ }
245
296
  });
246
- return this.makeRequest(buffer, Constants_1.COMMANDS.ADD_BREAKPOINTS);
297
+ return this.makeRequest(buffer, this.supportsConditionalBreakpoints ? Constants_1.COMMANDS.ADD_CONDITIONAL_BREAKPOINTS : Constants_1.COMMANDS.ADD_BREAKPOINTS
298
+ //COMMANDS.ADD_BREAKPOINTS
299
+ );
247
300
  }
248
301
  return new AddBreakpointsResponse_1.AddBreakpointsResponse(null);
249
302
  }
@@ -269,6 +322,7 @@ class Debugger {
269
322
  buffer.insertUInt32LE(buffer.writeOffset + 4, 0); // packet_length - The size of the packet to be sent.
270
323
  this.activeRequests[requestId] = {
271
324
  commandType: command,
325
+ commandTypeText: Constants_1.COMMANDS[command],
272
326
  extraData: extraData
273
327
  };
274
328
  return new Promise((resolve, reject) => {
@@ -279,6 +333,7 @@ class Debugger {
279
333
  }
280
334
  });
281
335
  if (this.controllerClient) {
336
+ this.logger.debug('makeRequest', `requestId=${requestId}`, this.activeRequests[requestId]);
282
337
  this.controllerClient.write(buffer.toBuffer());
283
338
  }
284
339
  else {
@@ -301,18 +356,18 @@ class Debugger {
301
356
  this.removedProcessedBytes(debuggerRequestResponse, slicedBuffer, packetLength);
302
357
  return true;
303
358
  }
304
- if (debuggerRequestResponse.errorCode !== __1.ERROR_CODES.OK) {
359
+ if (debuggerRequestResponse.errorCode !== Constants_1.ERROR_CODES.OK) {
305
360
  this.logger.error(debuggerRequestResponse.errorCode, debuggerRequestResponse);
306
361
  this.removedProcessedBytes(debuggerRequestResponse, buffer, packetLength);
307
362
  return true;
308
363
  }
309
364
  if (debuggerRequestResponse.updateType > 0) {
310
- this.logger.log('Update Type:', __1.UPDATE_TYPES[debuggerRequestResponse.updateType]);
365
+ this.logger.log('Update Type:', Constants_1.UPDATE_TYPES[debuggerRequestResponse.updateType]);
311
366
  switch (debuggerRequestResponse.updateType) {
312
- case __1.UPDATE_TYPES.IO_PORT_OPENED:
367
+ case Constants_1.UPDATE_TYPES.IO_PORT_OPENED:
313
368
  return this.connectToIoPort(new responses_1.ConnectIOPortResponse(slicedBuffer), buffer, packetLength);
314
- case __1.UPDATE_TYPES.ALL_THREADS_STOPPED:
315
- case __1.UPDATE_TYPES.THREAD_ATTACHED:
369
+ case Constants_1.UPDATE_TYPES.ALL_THREADS_STOPPED:
370
+ case Constants_1.UPDATE_TYPES.THREAD_ATTACHED:
316
371
  let debuggerUpdateThreads = new responses_1.UpdateThreadsResponse(slicedBuffer);
317
372
  if (debuggerUpdateThreads.success) {
318
373
  this.handleThreadsUpdate(debuggerUpdateThreads);
@@ -320,7 +375,13 @@ class Debugger {
320
375
  return true;
321
376
  }
322
377
  return false;
323
- case __1.UPDATE_TYPES.UNDEF:
378
+ case Constants_1.UPDATE_TYPES.UNDEF:
379
+ return this.checkResponse(new responses_1.UndefinedResponse(slicedBuffer), buffer, packetLength);
380
+ case Constants_1.UPDATE_TYPES.BREAKPOINT_ERROR:
381
+ const response = new BreakpointErrorUpdateResponse_1.BreakpointErrorUpdateResponse(slicedBuffer);
382
+ //we do nothing with breakpoint errors at this time.
383
+ return this.checkResponse(response, buffer, packetLength);
384
+ case Constants_1.UPDATE_TYPES.COMPILE_ERROR:
324
385
  return this.checkResponse(new responses_1.UndefinedResponse(slicedBuffer), buffer, packetLength);
325
386
  default:
326
387
  return this.checkResponse(new responses_1.UndefinedResponse(slicedBuffer), buffer, packetLength);
@@ -338,6 +399,7 @@ class Debugger {
338
399
  case Constants_1.COMMANDS.EXECUTE:
339
400
  return this.checkResponse(new ExecuteResponseV3_1.ExecuteResponseV3(slicedBuffer), buffer, packetLength);
340
401
  case Constants_1.COMMANDS.ADD_BREAKPOINTS:
402
+ case Constants_1.COMMANDS.ADD_CONDITIONAL_BREAKPOINTS:
341
403
  return this.checkResponse(new AddBreakpointsResponse_1.AddBreakpointsResponse(slicedBuffer), buffer, packetLength);
342
404
  case Constants_1.COMMANDS.LIST_BREAKPOINTS:
343
405
  return this.checkResponse(new ListBreakpointsResponse_1.ListBreakpointsResponse(slicedBuffer), buffer, packetLength);
@@ -382,12 +444,13 @@ class Debugger {
382
444
  }
383
445
  removedProcessedBytes(responseHandler, unhandledData, packetLength = 0) {
384
446
  var _a, _b, _c;
447
+ const activeRequest = this.activeRequests[responseHandler.requestId];
385
448
  if (responseHandler.requestId > 0 && this.activeRequests[responseHandler.requestId]) {
386
449
  delete this.activeRequests[responseHandler.requestId];
387
450
  }
388
451
  this.emit('data', responseHandler);
389
452
  this.unhandledData = unhandledData.slice(packetLength ? packetLength : responseHandler.readOffset);
390
- this.logger.debug('[raw]', (_c = (_b = (_a = responseHandler) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '', responseHandler);
453
+ this.logger.debug('[raw]', `requestId=${responseHandler === null || responseHandler === void 0 ? void 0 : responseHandler.requestId}`, activeRequest, (_c = (_b = (_a = responseHandler) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.name) !== null && _c !== void 0 ? _c : '', responseHandler);
391
454
  this.parseUnhandledData(this.unhandledData);
392
455
  }
393
456
  verifyHandshake(debuggerHandshake) {
@@ -478,7 +541,7 @@ class Debugger {
478
541
  this.stopped = true;
479
542
  let stopReason = update.data.stopReason;
480
543
  let eventName = stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR ? 'runtime-error' : 'suspend';
481
- if (update.updateType === __1.UPDATE_TYPES.ALL_THREADS_STOPPED) {
544
+ if (update.updateType === Constants_1.UPDATE_TYPES.ALL_THREADS_STOPPED) {
482
545
  if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
483
546
  this.primaryThread = update.data.primaryThreadIndex;
484
547
  this.stackFrameIndex = 0;
@@ -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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"}
@@ -0,0 +1,32 @@
1
+ /// <reference types="node" />
2
+ /**
3
+ * Data sent as the data segment of message type: BREAKPOINT_ERROR
4
+ ```
5
+ struct BreakpointErrorUpdateData {
6
+ uint32 flags; // Always 0, reserved for future use
7
+ uint32 breakpoint_id;
8
+ uint32 num_compile_errors;
9
+ utf8z[num_compile_errors] compile_errors;
10
+ uint32 num_runtime_errors;
11
+ utf8z[num_runtime_errors] runtime_errors;
12
+ uint32 num_other_errors; // E.g., permissions errors
13
+ utf8z[num_other_errors] other_errors;
14
+ }
15
+ ```
16
+ */
17
+ export declare class BreakpointErrorUpdateResponse {
18
+ constructor(buffer: Buffer);
19
+ success: boolean;
20
+ readOffset: number;
21
+ requestId: number;
22
+ errorCode: number;
23
+ updateType: number;
24
+ flags: number;
25
+ breakpointId: number;
26
+ compileErrorCount: number;
27
+ compileErrors: string[];
28
+ runtimeErrorCount: number;
29
+ runtimeErrors: string[];
30
+ otherErrorCount: number;
31
+ otherErrors: string[];
32
+ }
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BreakpointErrorUpdateResponse = void 0;
4
+ const smart_buffer_1 = require("smart-buffer");
5
+ const util_1 = require("../../util");
6
+ const Constants_1 = require("../Constants");
7
+ /**
8
+ * Data sent as the data segment of message type: BREAKPOINT_ERROR
9
+ ```
10
+ struct BreakpointErrorUpdateData {
11
+ uint32 flags; // Always 0, reserved for future use
12
+ uint32 breakpoint_id;
13
+ uint32 num_compile_errors;
14
+ utf8z[num_compile_errors] compile_errors;
15
+ uint32 num_runtime_errors;
16
+ utf8z[num_runtime_errors] runtime_errors;
17
+ uint32 num_other_errors; // E.g., permissions errors
18
+ utf8z[num_other_errors] other_errors;
19
+ }
20
+ ```
21
+ */
22
+ class BreakpointErrorUpdateResponse {
23
+ constructor(buffer) {
24
+ this.success = false;
25
+ this.readOffset = 0;
26
+ this.requestId = -1;
27
+ this.errorCode = -1;
28
+ this.updateType = -1;
29
+ this.compileErrors = [];
30
+ this.runtimeErrors = [];
31
+ this.otherErrors = [];
32
+ // The minimum size of a undefined response
33
+ if (buffer.byteLength >= 12) {
34
+ let bufferReader = smart_buffer_1.SmartBuffer.fromBuffer(buffer);
35
+ this.requestId = bufferReader.readUInt32LE();
36
+ // Updates will always have an id of zero because we didn't ask for this information
37
+ if (this.requestId === 0) {
38
+ this.errorCode = bufferReader.readUInt32LE();
39
+ this.updateType = bufferReader.readUInt32LE();
40
+ }
41
+ if (this.updateType === Constants_1.UPDATE_TYPES.BREAKPOINT_ERROR) {
42
+ try {
43
+ this.flags = bufferReader.readUInt32LE(); // flags - always 0, reserved for future use
44
+ this.breakpointId = bufferReader.readUInt32LE(); // breakpoint_id
45
+ this.compileErrorCount = bufferReader.readUInt32LE(); // num_compile_errors
46
+ for (let i = 0; i < this.compileErrorCount; i++) {
47
+ this.compileErrors.push(util_1.util.readStringNT(bufferReader));
48
+ }
49
+ this.runtimeErrorCount = bufferReader.readUInt32LE(); // num_runtime_errors
50
+ for (let i = 0; i < this.runtimeErrorCount; i++) {
51
+ this.runtimeErrors.push(util_1.util.readStringNT(bufferReader));
52
+ }
53
+ this.otherErrorCount = bufferReader.readUInt32LE(); // num_other_errors
54
+ for (let i = 0; i < this.otherErrorCount; i++) {
55
+ this.otherErrors.push(util_1.util.readStringNT(bufferReader));
56
+ }
57
+ this.success = true;
58
+ }
59
+ catch (error) {
60
+ // Could not process
61
+ }
62
+ }
63
+ }
64
+ }
65
+ }
66
+ exports.BreakpointErrorUpdateResponse = BreakpointErrorUpdateResponse;
67
+ //# sourceMappingURL=BreakpointErrorUpdateResponse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreakpointErrorUpdateResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/BreakpointErrorUpdateResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,qCAAkC;AAClC,4CAA4C;AAE5C;;;;;;;;;;;;;;EAcE;AACF,MAAa,6BAA6B;IAEtC,YAAY,MAAc;QA2CnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,eAAU,GAAG,CAAC,CAAC,CAAC;QAMhB,kBAAa,GAAa,EAAE,CAAC;QAG7B,kBAAa,GAAa,EAAE,CAAC;QAG7B,gBAAW,GAAa,EAAE,CAAC;QA1D9B,2CAA2C;QAC3C,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE;YACzB,IAAI,YAAY,GAAG,0BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;YAE7C,oFAAoF;YACpF,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;gBACtB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC7C,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;aACjD;YACD,IAAI,IAAI,CAAC,UAAU,KAAK,wBAAY,CAAC,gBAAgB,EAAE;gBACnD,IAAI;oBACA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,4CAA4C;oBACtF,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,gBAAgB;oBAEjE,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,qBAAqB;oBAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE;wBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,WAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAClC,CAAC;qBACL;oBAED,IAAI,CAAC,iBAAiB,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,qBAAqB;oBAC3E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,EAAE,EAAE;wBAC7C,IAAI,CAAC,aAAa,CAAC,IAAI,CACnB,WAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAClC,CAAC;qBACL;oBAED,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,mBAAmB;oBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE,EAAE;wBAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CACjB,WAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAClC,CAAC;qBACL;oBACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;iBACvB;gBAAC,OAAO,KAAK,EAAE;oBACZ,oBAAoB;iBACvB;aACJ;SACJ;IACL,CAAC;CAkBJ;AA9DD,sEA8DC"}
@@ -120,8 +120,13 @@ class VariableInfo {
120
120
  this.value = 'Unknown';
121
121
  this.success = true;
122
122
  break;
123
+ case 'Invalid':
124
+ this.value = 'Invalid';
125
+ this.success = true;
126
+ break;
123
127
  case 'AA':
124
128
  case 'Array':
129
+ case 'List':
125
130
  this.value = null;
126
131
  this.success = true;
127
132
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"VariableResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/VariableResponse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VariableResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/VariableResponse.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,7 @@ export declare class BrightScriptDebugSession extends BaseDebugSession {
43
43
  initializeRequest(response: DebugProtocol.InitializeResponse, args: DebugProtocol.InitializeRequestArguments): void;
44
44
  private showPopupMessage;
45
45
  launchRequest(response: DebugProtocol.LaunchResponse, config: LaunchConfiguration): Promise<void>;
46
+ private connectAndPublish;
46
47
  /**
47
48
  * Send log output to the "client" (i.e. vscode)
48
49
  * @param logOutput
@@ -243,15 +243,10 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
243
243
  this.launchConfiguration.failOnCompileError = false;
244
244
  // Set the remote debug flag on the args to be passed to roku deploy so the socket debugger can be started if needed.
245
245
  this.launchConfiguration.remoteDebug = this.enableDebugProtocol;
246
- //publish the package to the target Roku
247
- await this.rokuDeploy.publish(this.launchConfiguration);
246
+ await this.connectAndPublish();
248
247
  this.sendEvent(new Events_1.ChannelPublishedEvent({
249
248
  launchConfiguration: this.launchConfiguration
250
249
  }));
251
- if (this.enableDebugProtocol) {
252
- //connect to the roku debug via sockets
253
- await this.connectRokuAdapter();
254
- }
255
250
  //tell the adapter adapter that the channel has been launched.
256
251
  await this.rokuAdapter.activate();
257
252
  if (!error) {
@@ -299,14 +294,46 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
299
294
  await this.rokuAdapter.continue();
300
295
  //kill the app on the roku
301
296
  await this.rokuDeploy.pressHomeButton(this.launchConfiguration.host, this.launchConfiguration.remotePort);
297
+ //convert a hostname to an ip address
298
+ const deepLinkUrl = await util_1.util.resolveUrl(this.launchConfiguration.deepLinkUrl);
302
299
  //send the deep link http request
303
300
  await new Promise((resolve, reject) => {
304
- request.post(this.launchConfiguration.deepLinkUrl, (err, response) => {
301
+ request.post(deepLinkUrl, (err, response) => {
305
302
  return err ? reject(err) : resolve(response);
306
303
  });
307
304
  });
308
305
  }
309
306
  }
307
+ async connectAndPublish() {
308
+ let connectPromise;
309
+ //connect to the roku debug via sockets
310
+ if (this.enableDebugProtocol) {
311
+ connectPromise = this.connectRokuAdapter().catch(e => this.logger.error(e));
312
+ }
313
+ let packageIsPublished = false;
314
+ //publish the package to the target Roku
315
+ const publishPromise = this.rokuDeploy.publish(this.launchConfiguration).then(() => {
316
+ packageIsPublished = true;
317
+ });
318
+ await publishPromise;
319
+ //the channel has been deployed. Wait for the adapter to finish connecting.
320
+ //if it hasn't connected after 5 seconds, it probably will never connect.
321
+ await Promise.race([
322
+ connectPromise,
323
+ util_1.util.sleep(5000)
324
+ ]);
325
+ this.logger.log('Finished racing promises');
326
+ //if the adapter is still not connected, then it will probably never connect. Abort.
327
+ if (packageIsPublished && !this.rokuAdapter.connected) {
328
+ //kill the session cuz it won't ever come back
329
+ await this.rokuDeploy.pressHomeButton(this.launchConfiguration.host, this.launchConfiguration.remotePort);
330
+ const message = 'Debug session cancelled: failed to connect to debug protocol control port.';
331
+ this.showPopupMessage(message, 'error');
332
+ this.logger.error(message);
333
+ this.shutdown();
334
+ this.sendEvent(new vscode_debugadapter_1.TerminatedEvent());
335
+ }
336
+ }
310
337
  /**
311
338
  * Send log output to the "client" (i.e. vscode)
312
339
  * @param logOutput
@@ -850,7 +877,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
850
877
  //when the debugger suspends (pauses for debugger input)
851
878
  // eslint-disable-next-line @typescript-eslint/no-misused-promises
852
879
  this.rokuAdapter.on('suspend', async () => {
853
- var _a;
880
+ var _a, _b;
854
881
  //sync breakpoints
855
882
  await ((_a = this.rokuAdapter) === null || _a === void 0 ? void 0 : _a.syncBreakpoints());
856
883
  this.logger.info('received "suspend" event from adapter');
@@ -877,7 +904,9 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
877
904
  }
878
905
  }
879
906
  this.clearState();
880
- const event = new vscode_debugadapter_1.StoppedEvent(Events_1.StoppedEventReason.breakpoint, activeThread.threadId, '' //exception text
907
+ const event = new vscode_debugadapter_1.StoppedEvent(Events_1.StoppedEventReason.breakpoint,
908
+ //Not sure why, but sometimes there is no active thread. Just pick thread 0 to prevent the app from totally crashing
909
+ (_b = activeThread === null || activeThread === void 0 ? void 0 : activeThread.threadId) !== null && _b !== void 0 ? _b : 0, '' //exception text
881
910
  );
882
911
  // Socket debugger will always stop all threads and supports multi thread inspection.
883
912
  event.body.allThreadsStopped = this.enableDebugProtocol;
@@ -990,7 +1019,7 @@ class BrightScriptDebugSession extends vscode_debugadapter_1.DebugSession {
990
1019
  async handleEntryBreakpoint() {
991
1020
  if (!this.enableDebugProtocol) {
992
1021
  this.entryBreakpointWasHandled = true;
993
- if (this.launchConfiguration.stopOnEntry) {
1022
+ if (this.launchConfiguration.stopOnEntry || this.launchConfiguration.deepLinkUrl) {
994
1023
  await this.projectManager.registerEntryBreakpoint(this.projectManager.mainProject.stagingFolderPath);
995
1024
  }
996
1025
  }