roku-debug 0.21.3 → 0.21.5
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 +22 -0
- package/dist/LaunchConfiguration.d.ts +28 -0
- package/dist/RendezvousTracker.js +6 -1
- package/dist/RendezvousTracker.js.map +1 -1
- package/dist/adapters/DebugProtocolAdapter.d.ts +8 -4
- package/dist/adapters/DebugProtocolAdapter.js +92 -40
- package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
- package/dist/adapters/TelnetAdapter.d.ts +3 -1
- package/dist/adapters/TelnetAdapter.js +17 -1
- package/dist/adapters/TelnetAdapter.js.map +1 -1
- package/dist/debugProtocol/client/DebugProtocolClient.d.ts +1 -6
- package/dist/debugProtocol/client/DebugProtocolClient.js +28 -52
- package/dist/debugProtocol/client/DebugProtocolClient.js.map +1 -1
- package/dist/debugSession/BrightScriptDebugSession.d.ts +4 -2
- package/dist/debugSession/BrightScriptDebugSession.js +102 -39
- package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
- package/dist/debugSession/Events.d.ts +19 -0
- package/dist/debugSession/Events.js +25 -1
- package/dist/debugSession/Events.js.map +1 -1
- package/dist/managers/BreakpointManager.d.ts +1 -0
- package/dist/managers/BreakpointManager.js +3 -0
- package/dist/managers/BreakpointManager.js.map +1 -1
- package/dist/managers/ProjectManager.d.ts +4 -1
- package/dist/managers/ProjectManager.js +8 -4
- package/dist/managers/ProjectManager.js.map +1 -1
- package/dist/util.js +2 -2
- package/dist/util.js.map +1 -1
- package/package.json +3 -3
- package/roku-debug-0.21.5.tgz +0 -0
- package/roku-debug-0.21.3.tgz +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## [0.21.5](https://github.com/rokucommunity/roku-debug/compare/v0.21.4...v0.21.5) - 2024-03-01
|
|
10
|
+
### Changed
|
|
11
|
+
- Add some enhanced launch settings to support more diverse projects ([#184](https://github.com/rokucommunity/roku-debug/pull/184))
|
|
12
|
+
- upgrade to [roku-deploy@3.12.0](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3120---2024-03-01). Notable changes since 3.11.3:
|
|
13
|
+
- Support overriding various package upload form data ([roku-deploy#136](https://github.com/rokucommunity/roku-deploy/pull/136))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [0.21.4](https://github.com/rokucommunity/roku-debug/compare/v0.21.3...v0.21.4) - 2024-02-29
|
|
18
|
+
### Changed
|
|
19
|
+
- upgrade to [brighterscript@0.65.23](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#06523---2024-02-29). Notable changes since 0.65.19:
|
|
20
|
+
- Fix sourcemap comment and add `file` prop to map ([brighterscript#1064](https://github.com/rokucommunity/brighterscript/pull/1064))
|
|
21
|
+
- Move `coveralls-next` to a devDependency since it's not needed at runtime ([brighterscript#1051](https://github.com/rokucommunity/brighterscript/pull/1051))
|
|
22
|
+
- Fix parsing issues with multi-index IndexedSet and IndexedGet ([brighterscript#1050](https://github.com/rokucommunity/brighterscript/pull/1050))
|
|
23
|
+
- upgrade to [roku-deploy@3.11.3](https://github.com/rokucommunity/roku-deploy/blob/master/CHANGELOG.md#3113---2024-02-29). Notable changes since 3.11.2:
|
|
24
|
+
- Retry the convertToSquahsfs request given the HPE_INVALID_CONSTANT error ([roku-deploy#145](https://github.com/rokucommunity/roku-deploy/pull/145))
|
|
25
|
+
### Fixed
|
|
26
|
+
- DebugProtocol fixes ([#186](https://github.com/rokucommunity/roku-debug/pull/186))
|
|
27
|
+
- Support relaunch debug protocol ([#181](https://github.com/rokucommunity/roku-debug/pull/181))
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
9
31
|
## [0.21.3](https://github.com/rokucommunity/roku-debug/compare/v0.21.2...v0.21.3) - 2024-01-30
|
|
10
32
|
### Changed
|
|
11
33
|
- upgrade to [brighterscript@0.65.19](https://github.com/rokucommunity/brighterscript/blob/master/CHANGELOG.md#06519---2024-01-30). Notable changes since 0.65.18:
|
|
@@ -251,6 +251,34 @@ export interface LaunchConfiguration extends DebugProtocol.LaunchRequestArgument
|
|
|
251
251
|
* @default false
|
|
252
252
|
*/
|
|
253
253
|
deleteDevChannelBeforeInstall: boolean;
|
|
254
|
+
/**
|
|
255
|
+
* Task to run instead of roku-deploy to produce the .zip file that will be uploaded to the Roku.
|
|
256
|
+
*/
|
|
257
|
+
packageTask: string;
|
|
258
|
+
/**
|
|
259
|
+
* Path to the .zip that will be uploaded to the Roku
|
|
260
|
+
*/
|
|
261
|
+
packagePath: string;
|
|
262
|
+
/**
|
|
263
|
+
* Overrides for values used during the roku-deploy zip upload process, like the route and various form data. You probably don't need to change these..
|
|
264
|
+
*/
|
|
265
|
+
packageUploadOverrides?: {
|
|
266
|
+
/**
|
|
267
|
+
* The route to use for uploading to the Roku device. Defaults to 'plugin_install'
|
|
268
|
+
* @default 'plugin_install'
|
|
269
|
+
*/
|
|
270
|
+
route: string;
|
|
271
|
+
/**
|
|
272
|
+
* A dictionary of form fields to be included in the package upload request. Set a value to null to delete from the form
|
|
273
|
+
*/
|
|
274
|
+
formData: Record<string, any>;
|
|
275
|
+
};
|
|
276
|
+
/**
|
|
277
|
+
* Should the ChannelPublishedEvent be emitted. This is a hack for when certain roku devices become locked up as a result of this event
|
|
278
|
+
* being emitted. You probably don't need to set this
|
|
279
|
+
* @default true
|
|
280
|
+
*/
|
|
281
|
+
emitChannelPublishedEvent?: boolean;
|
|
254
282
|
}
|
|
255
283
|
export interface ComponentLibraryConfiguration {
|
|
256
284
|
/**
|
|
@@ -29,7 +29,12 @@ class RendezvousTracker {
|
|
|
29
29
|
* Determine if the current Roku device supports the ECP rendezvous tracking feature
|
|
30
30
|
*/
|
|
31
31
|
get doesHostSupportEcpRendezvousTracking() {
|
|
32
|
-
|
|
32
|
+
var _a;
|
|
33
|
+
let softwareVersion = (_a = this.deviceInfo) === null || _a === void 0 ? void 0 : _a.softwareVersion;
|
|
34
|
+
if (!semver.valid(softwareVersion)) {
|
|
35
|
+
softwareVersion = '0.0.0';
|
|
36
|
+
}
|
|
37
|
+
return semver.gte(softwareVersion, '11.5.0');
|
|
33
38
|
}
|
|
34
39
|
on(eventName, handler) {
|
|
35
40
|
this.emitter.on(eventName, handler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendezvousTracker.js","sourceRoot":"","sources":["../src/RendezvousTracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RendezvousTracker.js","sourceRoot":"","sources":["../src/RendezvousTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ export declare class DebugProtocolAdapter {
|
|
|
32
32
|
private compileErrorProcessor;
|
|
33
33
|
private emitter;
|
|
34
34
|
private chanperfTracker;
|
|
35
|
-
private
|
|
35
|
+
private client;
|
|
36
36
|
private nextFrameId;
|
|
37
37
|
private stackFramesCache;
|
|
38
38
|
private cache;
|
|
@@ -40,7 +40,6 @@ export declare class DebugProtocolAdapter {
|
|
|
40
40
|
* Get the version of the protocol for the Roku device we're currently connected to.
|
|
41
41
|
*/
|
|
42
42
|
get activeProtocolVersion(): string;
|
|
43
|
-
readonly supportsMultipleRuns = false;
|
|
44
43
|
/**
|
|
45
44
|
* Subscribe to an event exactly once
|
|
46
45
|
* @param eventName
|
|
@@ -49,6 +48,7 @@ export declare class DebugProtocolAdapter {
|
|
|
49
48
|
once(eventname: 'chanperf'): Promise<ChanperfData>;
|
|
50
49
|
once(eventName: 'close'): Promise<void>;
|
|
51
50
|
once(eventName: 'app-exit'): Promise<void>;
|
|
51
|
+
once(eventName: 'app-ready'): Promise<void>;
|
|
52
52
|
once(eventName: 'diagnostics'): Promise<BSDebugDiagnostic>;
|
|
53
53
|
once(eventName: 'connected'): Promise<boolean>;
|
|
54
54
|
once(eventname: 'console-output'): Promise<string>;
|
|
@@ -75,6 +75,7 @@ export declare class DebugProtocolAdapter {
|
|
|
75
75
|
on(eventName: 'runtime-error', handler: (error: BrightScriptRuntimeError) => void): any;
|
|
76
76
|
on(eventName: 'suspend', handler: () => void): any;
|
|
77
77
|
on(eventName: 'start', handler: () => void): any;
|
|
78
|
+
on(eventName: 'waiting-for-debugger', handler: () => void): any;
|
|
78
79
|
on(eventname: 'unhandled-console-output', handler: (output: string) => void): any;
|
|
79
80
|
private emit;
|
|
80
81
|
/**
|
|
@@ -100,13 +101,16 @@ export declare class DebugProtocolAdapter {
|
|
|
100
101
|
/**
|
|
101
102
|
* Connect to the telnet session. This should be called before the channel is launched.
|
|
102
103
|
*/
|
|
103
|
-
connect(): Promise<
|
|
104
|
+
connect(): Promise<void>;
|
|
105
|
+
createDebugProtocolClient(): Promise<unknown>;
|
|
104
106
|
private beginAppExit;
|
|
105
107
|
/**
|
|
106
108
|
* Determines if the current version of the debug protocol supports emitting compile error updates.
|
|
107
109
|
*/
|
|
108
110
|
get supportsCompileErrorReporting(): boolean;
|
|
109
|
-
|
|
111
|
+
private processingTelnetOutput;
|
|
112
|
+
processTelnetOutput(): Promise<unknown>;
|
|
113
|
+
private findWaitForDebuggerPrompt;
|
|
110
114
|
/**
|
|
111
115
|
* Send command to step over
|
|
112
116
|
*/
|
|
@@ -31,7 +31,6 @@ class DebugProtocolAdapter {
|
|
|
31
31
|
this.nextFrameId = 1;
|
|
32
32
|
this.stackFramesCache = {};
|
|
33
33
|
this.cache = {};
|
|
34
|
-
this.supportsMultipleRuns = false;
|
|
35
34
|
/**
|
|
36
35
|
* The debugger needs to tell us when to be active (i.e. when the package was deployed)
|
|
37
36
|
*/
|
|
@@ -41,6 +40,7 @@ class DebugProtocolAdapter {
|
|
|
41
40
|
* which indicates that the app is running on the Roku
|
|
42
41
|
*/
|
|
43
42
|
this.isAppRunning = false;
|
|
43
|
+
this.processingTelnetOutput = false;
|
|
44
44
|
/**
|
|
45
45
|
* Indicates whether this class had `.destroy()` called at least once. Mostly used for checking externally to see if
|
|
46
46
|
* the whole debug session has been terminated or is in a bad state.
|
|
@@ -62,7 +62,7 @@ class DebugProtocolAdapter {
|
|
|
62
62
|
*/
|
|
63
63
|
get activeProtocolVersion() {
|
|
64
64
|
var _a;
|
|
65
|
-
return (_a = this.
|
|
65
|
+
return (_a = this.client) === null || _a === void 0 ? void 0 : _a.protocolVersion;
|
|
66
66
|
}
|
|
67
67
|
once(eventName) {
|
|
68
68
|
return new Promise((resolve) => {
|
|
@@ -134,18 +134,32 @@ class DebugProtocolAdapter {
|
|
|
134
134
|
}
|
|
135
135
|
get isAtDebuggerPrompt() {
|
|
136
136
|
var _a, _b;
|
|
137
|
-
return (_b = (_a = this.
|
|
137
|
+
return (_b = (_a = this.client) === null || _a === void 0 ? void 0 : _a.isStopped) !== null && _b !== void 0 ? _b : false;
|
|
138
138
|
}
|
|
139
139
|
/**
|
|
140
140
|
* Connect to the telnet session. This should be called before the channel is launched.
|
|
141
141
|
*/
|
|
142
142
|
async connect() {
|
|
143
|
+
//Start processing telnet output to look for compile errors or the debugger prompt
|
|
144
|
+
await this.processTelnetOutput();
|
|
145
|
+
this.on('waiting-for-debugger', () => {
|
|
146
|
+
void this.createDebugProtocolClient();
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
async createDebugProtocolClient() {
|
|
143
150
|
let deferred = (0, util_1.defer)();
|
|
144
|
-
|
|
151
|
+
if (this.client) {
|
|
152
|
+
await Promise.race([
|
|
153
|
+
util_1.util.sleep(2000),
|
|
154
|
+
await this.client.destroy()
|
|
155
|
+
]);
|
|
156
|
+
this.client = undefined;
|
|
157
|
+
}
|
|
158
|
+
this.client = new DebugProtocolClient_1.DebugProtocolClient(this.options);
|
|
145
159
|
try {
|
|
146
160
|
// Emit IO from the debugger.
|
|
147
161
|
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
148
|
-
this.
|
|
162
|
+
this.client.on('io-output', async (responseText) => {
|
|
149
163
|
if (typeof responseText === 'string') {
|
|
150
164
|
responseText = this.chanperfTracker.processLog(responseText);
|
|
151
165
|
responseText = await this.rendezvousTracker.processLog(responseText);
|
|
@@ -154,7 +168,7 @@ class DebugProtocolAdapter {
|
|
|
154
168
|
}
|
|
155
169
|
});
|
|
156
170
|
// Emit IO from the debugger.
|
|
157
|
-
this.
|
|
171
|
+
this.client.on('protocol-version', (data) => {
|
|
158
172
|
if (data.errorCode === Constants_1.PROTOCOL_ERROR_CODES.SUPPORTED) {
|
|
159
173
|
this.emit('console-output', data.message);
|
|
160
174
|
}
|
|
@@ -175,30 +189,36 @@ class DebugProtocolAdapter {
|
|
|
175
189
|
this.supportsExecuteCommand = semver.satisfies(this.activeProtocolVersion, '>=3.0.0');
|
|
176
190
|
});
|
|
177
191
|
// Listen for the close event
|
|
178
|
-
this.
|
|
192
|
+
this.client.on('close', () => {
|
|
193
|
+
var _a;
|
|
179
194
|
this.emit('close');
|
|
180
195
|
this.beginAppExit();
|
|
196
|
+
void ((_a = this.client) === null || _a === void 0 ? void 0 : _a.destroy());
|
|
197
|
+
this.client = undefined;
|
|
181
198
|
});
|
|
182
199
|
// Listen for the app exit event
|
|
183
|
-
this.
|
|
200
|
+
this.client.on('app-exit', () => {
|
|
201
|
+
var _a;
|
|
184
202
|
this.emit('app-exit');
|
|
203
|
+
void ((_a = this.client) === null || _a === void 0 ? void 0 : _a.destroy());
|
|
204
|
+
this.client = undefined;
|
|
185
205
|
});
|
|
186
|
-
this.
|
|
206
|
+
this.client.on('suspend', (data) => {
|
|
187
207
|
this.clearCache();
|
|
188
208
|
this.emit('suspend');
|
|
189
209
|
});
|
|
190
|
-
this.
|
|
210
|
+
this.client.on('runtime-error', (data) => {
|
|
191
211
|
console.debug('hasRuntimeError!!', data);
|
|
192
212
|
this.emit('runtime-error', {
|
|
193
213
|
message: data.data.stopReasonDetail,
|
|
194
214
|
errorCode: data.data.stopReason
|
|
195
215
|
});
|
|
196
216
|
});
|
|
197
|
-
this.
|
|
217
|
+
this.client.on('cannot-continue', () => {
|
|
198
218
|
this.emit('cannot-continue');
|
|
199
219
|
});
|
|
200
220
|
//handle when the device verifies breakpoints
|
|
201
|
-
this.
|
|
221
|
+
this.client.on('breakpoints-verified', (event) => {
|
|
202
222
|
var _a;
|
|
203
223
|
let unverifiableDeviceIds = [];
|
|
204
224
|
//mark the breakpoints as verified
|
|
@@ -211,18 +231,11 @@ class DebugProtocolAdapter {
|
|
|
211
231
|
//if there were any unsuccessful breakpoint verifications, we need to ask the device to delete those breakpoints as they've gone missing on our side
|
|
212
232
|
if (unverifiableDeviceIds.length > 0) {
|
|
213
233
|
this.logger.warn('Could not find breakpoints to verify. Removing from device:', { deviceBreakpointIds: unverifiableDeviceIds });
|
|
214
|
-
void this.
|
|
234
|
+
void this.client.removeBreakpoints(unverifiableDeviceIds);
|
|
215
235
|
}
|
|
216
236
|
this.emit('breakpoints-verified', event);
|
|
217
237
|
});
|
|
218
|
-
this.
|
|
219
|
-
this.logger.log(`Closing telnet connection used for compile errors`);
|
|
220
|
-
if (this.compileClient) {
|
|
221
|
-
this.compileClient.removeAllListeners();
|
|
222
|
-
this.compileClient.destroy();
|
|
223
|
-
this.compileClient = undefined;
|
|
224
|
-
}
|
|
225
|
-
this.socketDebugger.on('compile-error', (update) => {
|
|
238
|
+
this.client.on('compile-error', (update) => {
|
|
226
239
|
let diagnostics = [];
|
|
227
240
|
diagnostics.push({
|
|
228
241
|
path: update.data.filePath,
|
|
@@ -233,8 +246,11 @@ class DebugProtocolAdapter {
|
|
|
233
246
|
});
|
|
234
247
|
this.emit('diagnostics', diagnostics);
|
|
235
248
|
});
|
|
249
|
+
await this.client.connect();
|
|
236
250
|
this.logger.log(`Connected to device`, { host: this.options.host, connected: this.connected });
|
|
251
|
+
this.connected = true;
|
|
237
252
|
this.emit('connected', this.connected);
|
|
253
|
+
this.emit('app-ready');
|
|
238
254
|
//the adapter is connected and running smoothly. resolve the promise
|
|
239
255
|
deferred.resolve();
|
|
240
256
|
}
|
|
@@ -255,7 +271,11 @@ class DebugProtocolAdapter {
|
|
|
255
271
|
get supportsCompileErrorReporting() {
|
|
256
272
|
return semver.satisfies(this.deviceInfo.brightscriptDebuggerVersion, '>=3.1.0');
|
|
257
273
|
}
|
|
258
|
-
async
|
|
274
|
+
async processTelnetOutput() {
|
|
275
|
+
if (this.processingTelnetOutput) {
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
this.processingTelnetOutput = true;
|
|
259
279
|
let deferred = (0, util_1.defer)();
|
|
260
280
|
try {
|
|
261
281
|
this.compileClient = new net_1.Socket();
|
|
@@ -291,6 +311,7 @@ class DebugProtocolAdapter {
|
|
|
291
311
|
lastPartialLine = '';
|
|
292
312
|
}
|
|
293
313
|
// Emit the completed io string.
|
|
314
|
+
this.findWaitForDebuggerPrompt(responseText.trim());
|
|
294
315
|
this.compileErrorProcessor.processUnhandledLines(responseText.trim());
|
|
295
316
|
this.emit('unhandled-console-output', responseText.trim());
|
|
296
317
|
}
|
|
@@ -303,27 +324,35 @@ class DebugProtocolAdapter {
|
|
|
303
324
|
}
|
|
304
325
|
return deferred.promise;
|
|
305
326
|
}
|
|
327
|
+
findWaitForDebuggerPrompt(responseText) {
|
|
328
|
+
let lines = responseText.split(/\r?\n/g);
|
|
329
|
+
for (const line of lines) {
|
|
330
|
+
if (/Waiting for debugger on \d+\.\d+\.\d+\.\d+:8081/g.exec(line)) {
|
|
331
|
+
this.emit('waiting-for-debugger');
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
}
|
|
306
335
|
/**
|
|
307
336
|
* Send command to step over
|
|
308
337
|
*/
|
|
309
338
|
async stepOver(threadId) {
|
|
310
339
|
this.clearCache();
|
|
311
|
-
return this.
|
|
340
|
+
return this.client.stepOver(threadId);
|
|
312
341
|
}
|
|
313
342
|
async stepInto(threadId) {
|
|
314
343
|
this.clearCache();
|
|
315
|
-
return this.
|
|
344
|
+
return this.client.stepIn(threadId);
|
|
316
345
|
}
|
|
317
346
|
async stepOut(threadId) {
|
|
318
347
|
this.clearCache();
|
|
319
|
-
return this.
|
|
348
|
+
return this.client.stepOut(threadId);
|
|
320
349
|
}
|
|
321
350
|
/**
|
|
322
351
|
* Tell the brightscript program to continue (i.e. resume program)
|
|
323
352
|
*/
|
|
324
353
|
async continue() {
|
|
325
354
|
this.clearCache();
|
|
326
|
-
return this.
|
|
355
|
+
return this.client.continue();
|
|
327
356
|
}
|
|
328
357
|
/**
|
|
329
358
|
* Tell the brightscript program to pause (fall into debug mode)
|
|
@@ -331,7 +360,7 @@ class DebugProtocolAdapter {
|
|
|
331
360
|
async pause() {
|
|
332
361
|
this.clearCache();
|
|
333
362
|
//send the kill signal, which breaks into debugger mode
|
|
334
|
-
return this.
|
|
363
|
+
return this.client.pause();
|
|
335
364
|
}
|
|
336
365
|
/**
|
|
337
366
|
* Clears the state, which means that everything will be retrieved fresh next time it is requested
|
|
@@ -345,7 +374,7 @@ class DebugProtocolAdapter {
|
|
|
345
374
|
* @param command
|
|
346
375
|
* @returns the output of the command (if possible)
|
|
347
376
|
*/
|
|
348
|
-
async evaluate(command, frameId = this.
|
|
377
|
+
async evaluate(command, frameId = this.client.primaryThread) {
|
|
349
378
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
350
379
|
if (this.supportsExecuteCommand) {
|
|
351
380
|
if (!this.isAtDebuggerPrompt) {
|
|
@@ -356,7 +385,7 @@ class DebugProtocolAdapter {
|
|
|
356
385
|
throw new Error('Cannot execute command without a corresponding frame');
|
|
357
386
|
}
|
|
358
387
|
this.logger.log('evaluate ', { command, frameId });
|
|
359
|
-
const response = await this.
|
|
388
|
+
const response = await this.client.executeCommand(command, stackFrame.frameIndex, stackFrame.threadIndex);
|
|
360
389
|
this.logger.info('evaluate response', { command, response });
|
|
361
390
|
if (response.data.executeSuccess) {
|
|
362
391
|
return {
|
|
@@ -383,7 +412,7 @@ class DebugProtocolAdapter {
|
|
|
383
412
|
};
|
|
384
413
|
}
|
|
385
414
|
}
|
|
386
|
-
async getStackTrace(threadIndex = this.
|
|
415
|
+
async getStackTrace(threadIndex = this.client.primaryThread) {
|
|
387
416
|
if (!this.isAtDebuggerPrompt) {
|
|
388
417
|
throw new Error('Cannot get stack trace: debugger is not paused');
|
|
389
418
|
}
|
|
@@ -392,7 +421,7 @@ class DebugProtocolAdapter {
|
|
|
392
421
|
var _f, _g;
|
|
393
422
|
let thread = await this.getThreadByThreadId(threadIndex);
|
|
394
423
|
let frames = [];
|
|
395
|
-
let stackTraceData = await this.
|
|
424
|
+
let stackTraceData = await this.client.getStackTrace(threadIndex);
|
|
396
425
|
for (let i = 0; (_c = i < ((_b = (_a = stackTraceData === null || stackTraceData === void 0 ? void 0 : stackTraceData.data) === null || _a === void 0 ? void 0 : _a.entries) === null || _b === void 0 ? void 0 : _b.length)) !== null && _c !== void 0 ? _c : 0; i++) {
|
|
397
426
|
let frameData = stackTraceData.data.entries[i];
|
|
398
427
|
let stackFrame = {
|
|
@@ -443,12 +472,12 @@ class DebugProtocolAdapter {
|
|
|
443
472
|
if (this.enableVariablesLowerCaseRetry && (variablePath === null || variablePath === void 0 ? void 0 : variablePath.length) > 0) {
|
|
444
473
|
variablePath[0] = variablePath[0].toLowerCase();
|
|
445
474
|
}
|
|
446
|
-
let response = await this.
|
|
475
|
+
let response = await this.client.getVariables(variablePath, frame.frameIndex, frame.threadIndex);
|
|
447
476
|
if (this.enableVariablesLowerCaseRetry && response.data.errorCode !== Constants_1.ErrorCode.OK) {
|
|
448
477
|
// Temporary workaround related to casing issues over the protocol
|
|
449
478
|
logger.log(`Retrying expression as lower case:`, expression);
|
|
450
479
|
variablePath = expression === '' ? [] : util_1.util.getVariablePath(expression === null || expression === void 0 ? void 0 : expression.toLowerCase());
|
|
451
|
-
response = await this.
|
|
480
|
+
response = await this.client.getVariables(variablePath, frame.frameIndex, frame.threadIndex);
|
|
452
481
|
}
|
|
453
482
|
return response;
|
|
454
483
|
}
|
|
@@ -577,13 +606,31 @@ class DebugProtocolAdapter {
|
|
|
577
606
|
return this.resolve('threads', async () => {
|
|
578
607
|
var _a, _b, _c;
|
|
579
608
|
let threads = [];
|
|
580
|
-
let threadsResponse
|
|
609
|
+
let threadsResponse;
|
|
610
|
+
// sometimes roku threads are stubborn and haven't stopped yet, causing our ThreadsRequest to fail with "not stopped".
|
|
611
|
+
// A nice simple fix for this is to just send a "pause" request again, which seems to fix the issue.
|
|
612
|
+
// we'll do this a few times just to make sure we've tried our best to get the list of threads.
|
|
613
|
+
for (let i = 0; i < 3; i++) {
|
|
614
|
+
threadsResponse = await this.client.threads();
|
|
615
|
+
if (threadsResponse.data.errorCode === Constants_1.ErrorCode.NOT_STOPPED) {
|
|
616
|
+
this.logger.log(`Threads request retrying... ${i}:\n`, threadsResponse);
|
|
617
|
+
threadsResponse = undefined;
|
|
618
|
+
const pauseResponse = await this.client.pause(true);
|
|
619
|
+
await util_1.util.sleep(100);
|
|
620
|
+
}
|
|
621
|
+
else {
|
|
622
|
+
break;
|
|
623
|
+
}
|
|
624
|
+
}
|
|
625
|
+
if (!threadsResponse) {
|
|
626
|
+
return [];
|
|
627
|
+
}
|
|
581
628
|
for (let i = 0; (_c = i < ((_b = (_a = threadsResponse.data) === null || _a === void 0 ? void 0 : _a.threads) === null || _b === void 0 ? void 0 : _b.length)) !== null && _c !== void 0 ? _c : 0; i++) {
|
|
582
629
|
let threadInfo = threadsResponse.data.threads[i];
|
|
583
630
|
let thread = {
|
|
584
631
|
// NOTE: On THREAD_ATTACHED events the threads request is marking the wrong thread as primary.
|
|
585
632
|
// NOTE: Rely on the thead index from the threads update event.
|
|
586
|
-
isSelected: this.
|
|
633
|
+
isSelected: this.client.primaryThread === i,
|
|
587
634
|
// isSelected: threadInfo.isPrimary,
|
|
588
635
|
filePath: threadInfo.filePath,
|
|
589
636
|
functionName: threadInfo.functionName,
|
|
@@ -619,9 +666,9 @@ class DebugProtocolAdapter {
|
|
|
619
666
|
async destroy() {
|
|
620
667
|
this.isDestroyed = true;
|
|
621
668
|
// destroy the debug client if it's defined
|
|
622
|
-
if (this.
|
|
669
|
+
if (this.client) {
|
|
623
670
|
try {
|
|
624
|
-
await this.
|
|
671
|
+
await this.client.destroy();
|
|
625
672
|
}
|
|
626
673
|
catch (e) {
|
|
627
674
|
this.logger.error(e);
|
|
@@ -630,6 +677,11 @@ class DebugProtocolAdapter {
|
|
|
630
677
|
this.cache = undefined;
|
|
631
678
|
this.removeAllListeners();
|
|
632
679
|
this.emitter = undefined;
|
|
680
|
+
if (this.compileClient) {
|
|
681
|
+
this.compileClient.removeAllListeners();
|
|
682
|
+
this.compileClient.destroy();
|
|
683
|
+
this.compileClient = undefined;
|
|
684
|
+
}
|
|
633
685
|
}
|
|
634
686
|
/**
|
|
635
687
|
* Passes the log level down to the RendezvousTracker and ChanperfTracker
|
|
@@ -666,7 +718,7 @@ class DebugProtocolAdapter {
|
|
|
666
718
|
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
667
719
|
//we can't send breakpoints unless we're stopped (or in a protocol version that supports sending them while running).
|
|
668
720
|
//So...if we're not stopped, quit now. (we'll get called again when the stop event happens)
|
|
669
|
-
if (!((_a = this.
|
|
721
|
+
if (!((_a = this.client) === null || _a === void 0 ? void 0 : _a.supportsBreakpointRegistrationWhileRunning) && !this.isAtDebuggerPrompt) {
|
|
670
722
|
return;
|
|
671
723
|
}
|
|
672
724
|
//compute breakpoint changes since last sync
|
|
@@ -674,7 +726,7 @@ class DebugProtocolAdapter {
|
|
|
674
726
|
this.logger.log('Syncing breakpoints', diff);
|
|
675
727
|
// REMOVE breakpoints (delete these breakpoints from the device)
|
|
676
728
|
if (diff.removed.length > 0) {
|
|
677
|
-
const response = await this.
|
|
729
|
+
const response = await this.client.removeBreakpoints(
|
|
678
730
|
//TODO handle retrying to remove breakpoints that don't have deviceIds yet but might get one in the future
|
|
679
731
|
diff.removed.map(x => x.deviceId).filter(x => typeof x === 'number'));
|
|
680
732
|
if (((_b = response.data) === null || _b === void 0 ? void 0 : _b.errorCode) === Constants_1.ErrorCode.NOT_STOPPED) {
|
|
@@ -707,7 +759,7 @@ class DebugProtocolAdapter {
|
|
|
707
759
|
}
|
|
708
760
|
}
|
|
709
761
|
for (const breakpoints of [standardBreakpoints, conditionalBreakpoints]) {
|
|
710
|
-
const response = await this.
|
|
762
|
+
const response = await this.client.addBreakpoints(breakpoints);
|
|
711
763
|
//if the response was successful, and we have the correct number of breakpoints in the response
|
|
712
764
|
if (response.data.errorCode === Constants_1.ErrorCode.OK && ((_e = (_d = response === null || response === void 0 ? void 0 : response.data) === null || _d === void 0 ? void 0 : _d.breakpoints) === null || _e === void 0 ? void 0 : _e.length) === breakpoints.length) {
|
|
713
765
|
for (let i = 0; (_h = i < ((_g = (_f = response === null || response === void 0 ? void 0 : response.data) === null || _f === void 0 ? void 0 : _f.breakpoints) === null || _g === void 0 ? void 0 : _g.length)) !== null && _h !== void 0 ? _h : 0; i++) {
|