roku-debug 0.9.4 → 0.10.2
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 +28 -1
- package/LICENSE +21 -0
- package/README.md +6 -6
- package/dist/adapters/DebugProtocolAdapter.d.ts +18 -8
- package/dist/adapters/DebugProtocolAdapter.js +147 -103
- package/dist/adapters/DebugProtocolAdapter.js.map +1 -1
- package/dist/adapters/TelnetAdapter.d.ts +6 -1
- package/dist/adapters/TelnetAdapter.js +8 -1
- package/dist/adapters/TelnetAdapter.js.map +1 -1
- package/dist/debugProtocol/Constants.d.ts +57 -52
- package/dist/debugProtocol/Constants.js +74 -50
- package/dist/debugProtocol/Constants.js.map +1 -1
- package/dist/debugProtocol/Debugger.d.ts +11 -7
- package/dist/debugProtocol/Debugger.js +160 -116
- package/dist/debugProtocol/Debugger.js.map +1 -1
- package/dist/debugProtocol/responses/ConnectIOPortResponse.d.ts +2 -2
- package/dist/debugProtocol/responses/ConnectIOPortResponse.js +5 -3
- package/dist/debugProtocol/responses/ConnectIOPortResponse.js.map +1 -1
- package/dist/debugProtocol/responses/ExecuteResponseV3.d.ts +23 -0
- package/dist/debugProtocol/responses/ExecuteResponseV3.js +54 -0
- package/dist/debugProtocol/responses/ExecuteResponseV3.js.map +1 -0
- package/dist/debugProtocol/responses/HandshakeResponse.d.ts +2 -0
- package/dist/debugProtocol/responses/HandshakeResponse.js +8 -0
- package/dist/debugProtocol/responses/HandshakeResponse.js.map +1 -1
- package/dist/debugProtocol/responses/HandshakeResponseV3.d.ts +14 -0
- package/dist/debugProtocol/responses/HandshakeResponseV3.js +47 -0
- package/dist/debugProtocol/responses/HandshakeResponseV3.js.map +1 -0
- package/dist/debugProtocol/responses/{Response.d.ts → ProtocolEvent.d.ts} +4 -2
- package/dist/debugProtocol/responses/{Response.js → ProtocolEvent.js} +13 -7
- package/dist/debugProtocol/responses/ProtocolEvent.js.map +1 -0
- package/dist/debugProtocol/responses/ProtocolEventV3.d.ts +11 -0
- package/dist/debugProtocol/responses/ProtocolEventV3.js +42 -0
- package/dist/debugProtocol/responses/ProtocolEventV3.js.map +1 -0
- package/dist/debugProtocol/responses/StackTraceResponse.d.ts +1 -1
- package/dist/debugProtocol/responses/StackTraceResponse.js +2 -2
- package/dist/debugProtocol/responses/StackTraceResponse.js.map +1 -1
- package/dist/debugProtocol/responses/StackTraceResponseV3.d.ts +18 -0
- package/dist/debugProtocol/responses/StackTraceResponseV3.js +58 -0
- package/dist/debugProtocol/responses/StackTraceResponseV3.js.map +1 -0
- package/dist/debugProtocol/responses/ThreadsResponse.d.ts +1 -1
- package/dist/debugProtocol/responses/ThreadsResponse.js +2 -1
- package/dist/debugProtocol/responses/ThreadsResponse.js.map +1 -1
- package/dist/debugProtocol/responses/UndefinedResponse.d.ts +2 -2
- package/dist/debugProtocol/responses/UndefinedResponse.js +5 -3
- package/dist/debugProtocol/responses/UndefinedResponse.js.map +1 -1
- package/dist/debugProtocol/responses/UpdateThreadsResponse.d.ts +2 -2
- package/dist/debugProtocol/responses/UpdateThreadsResponse.js +26 -6
- package/dist/debugProtocol/responses/UpdateThreadsResponse.js.map +1 -1
- package/dist/debugProtocol/responses/VariableResponse.d.ts +2 -2
- package/dist/debugProtocol/responses/VariableResponse.js +16 -8
- package/dist/debugProtocol/responses/VariableResponse.js.map +1 -1
- package/dist/debugProtocol/responses/index.d.ts +4 -1
- package/dist/debugProtocol/responses/index.js +4 -1
- package/dist/debugProtocol/responses/index.js.map +1 -1
- package/dist/debugSession/BrightScriptDebugSession.d.ts +8 -2
- package/dist/debugSession/BrightScriptDebugSession.js +89 -62
- package/dist/debugSession/BrightScriptDebugSession.js.map +1 -1
- package/dist/interfaces.d.ts +4 -0
- package/dist/util.d.ts +11 -7
- package/dist/util.js +82 -0
- package/dist/util.js.map +1 -1
- package/package.json +6 -5
- package/roku-debug-0.10.2.tgz +0 -0
- package/dist/debugProtocol/responses/Response.js.map +0 -1
- package/roku-debug-0.9.4.tgz +0 -0
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Debugger = void 0;
|
|
4
4
|
const Net = require("net");
|
|
5
|
-
const EventEmitter = require("
|
|
5
|
+
const EventEmitter = require("eventemitter3");
|
|
6
6
|
const semver = require("semver");
|
|
7
7
|
const responses_1 = require("./responses");
|
|
8
|
+
const Constants_1 = require("./Constants");
|
|
8
9
|
const smart_buffer_1 = require("smart-buffer");
|
|
9
10
|
const logging_1 = require("../logging");
|
|
11
|
+
const __1 = require("..");
|
|
12
|
+
const ExecuteResponseV3_1 = require("./responses/ExecuteResponseV3");
|
|
10
13
|
class Debugger {
|
|
11
14
|
constructor(options) {
|
|
12
15
|
this.logger = logging_1.logger.createLogger(`[debugProtocol/${Debugger.name}]`);
|
|
13
|
-
|
|
16
|
+
// The highest tested version of the protocol we support.
|
|
17
|
+
this.supportedVersionRange = '<=3.0.0';
|
|
14
18
|
this.handshakeComplete = false;
|
|
15
19
|
this.connectedToIoPort = false;
|
|
20
|
+
this.watchPacketLength = false;
|
|
16
21
|
this.emitter = new EventEmitter();
|
|
17
22
|
this.firstRunContinueFired = false;
|
|
18
23
|
this.stopped = false;
|
|
@@ -116,35 +121,36 @@ class Debugger {
|
|
|
116
121
|
let result;
|
|
117
122
|
if (this.stopped) {
|
|
118
123
|
this.stopped = false;
|
|
119
|
-
result = this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }),
|
|
124
|
+
result = this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.CONTINUE);
|
|
120
125
|
}
|
|
121
126
|
return result;
|
|
122
127
|
}
|
|
123
|
-
async pause() {
|
|
124
|
-
if (!this.stopped) {
|
|
125
|
-
return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }),
|
|
128
|
+
async pause(force = false) {
|
|
129
|
+
if (!this.stopped || force) {
|
|
130
|
+
return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.STOP);
|
|
126
131
|
}
|
|
127
132
|
}
|
|
128
133
|
async exitChannel() {
|
|
129
|
-
return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }),
|
|
134
|
+
return this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.EXIT_CHANNEL);
|
|
130
135
|
}
|
|
131
136
|
async stepIn(threadId = this.primaryThread) {
|
|
132
|
-
return this.step(
|
|
137
|
+
return this.step(Constants_1.STEP_TYPE.STEP_TYPE_LINE, threadId);
|
|
133
138
|
}
|
|
134
139
|
async stepOver(threadId = this.primaryThread) {
|
|
135
|
-
return this.step(
|
|
140
|
+
return this.step(Constants_1.STEP_TYPE.STEP_TYPE_OVER, threadId);
|
|
136
141
|
}
|
|
137
142
|
async stepOut(threadId = this.primaryThread) {
|
|
138
|
-
return this.step(
|
|
143
|
+
return this.step(Constants_1.STEP_TYPE.STEP_TYPE_OUT, threadId);
|
|
139
144
|
}
|
|
140
145
|
async step(stepType, threadId) {
|
|
146
|
+
this.logger.log('[step]', { stepType: Constants_1.STEP_TYPE[stepType], threadId, stopped: this.stopped });
|
|
141
147
|
let buffer = new smart_buffer_1.SmartBuffer({ size: 17 });
|
|
142
148
|
buffer.writeUInt32LE(threadId); // thread_index
|
|
143
149
|
buffer.writeUInt8(stepType); // step_type
|
|
144
150
|
if (this.stopped) {
|
|
145
151
|
this.stopped = false;
|
|
146
|
-
let stepResult = await this.makeRequest(buffer,
|
|
147
|
-
if (stepResult.errorCode ===
|
|
152
|
+
let stepResult = await this.makeRequest(buffer, Constants_1.COMMANDS.STEP);
|
|
153
|
+
if (stepResult.errorCode === __1.ERROR_CODES.OK) {
|
|
148
154
|
// this.stopped = true;
|
|
149
155
|
// this.emit('suspend');
|
|
150
156
|
}
|
|
@@ -156,11 +162,10 @@ class Debugger {
|
|
|
156
162
|
}
|
|
157
163
|
}
|
|
158
164
|
async threads() {
|
|
159
|
-
let result;
|
|
160
165
|
if (this.stopped) {
|
|
161
|
-
result = this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }),
|
|
162
|
-
if (result.errorCode ===
|
|
163
|
-
for (let i = 0; i < result.
|
|
166
|
+
let result = await this.makeRequest(new smart_buffer_1.SmartBuffer({ size: 12 }), Constants_1.COMMANDS.THREADS);
|
|
167
|
+
if (result.errorCode === __1.ERROR_CODES.OK) {
|
|
168
|
+
for (let i = 0; i < result.threadsCount; i++) {
|
|
164
169
|
let thread = result.threads[i];
|
|
165
170
|
if (thread.isPrimary) {
|
|
166
171
|
this.primaryThread = i;
|
|
@@ -175,7 +180,7 @@ class Debugger {
|
|
|
175
180
|
let buffer = new smart_buffer_1.SmartBuffer({ size: 16 });
|
|
176
181
|
buffer.writeUInt32LE(threadIndex); // thread_index
|
|
177
182
|
if (this.stopped && threadIndex > -1) {
|
|
178
|
-
return this.makeRequest(buffer,
|
|
183
|
+
return this.makeRequest(buffer, Constants_1.COMMANDS.STACKTRACE);
|
|
179
184
|
}
|
|
180
185
|
}
|
|
181
186
|
async getVariables(variablePathEntries = [], getChildKeys = true, stackFrameIndex = this.stackFrameIndex, threadIndex = this.primaryThread) {
|
|
@@ -188,7 +193,17 @@ class Debugger {
|
|
|
188
193
|
variablePathEntries.forEach(variablePathEntry => {
|
|
189
194
|
buffer.writeStringNT(variablePathEntry); // variable_path_entries - optional
|
|
190
195
|
});
|
|
191
|
-
return this.makeRequest(buffer,
|
|
196
|
+
return this.makeRequest(buffer, Constants_1.COMMANDS.VARIABLES, variablePathEntries);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
async executeCommand(sourceCode, stackFrameIndex = this.stackFrameIndex, threadIndex = this.primaryThread) {
|
|
200
|
+
if (this.stopped && threadIndex > -1) {
|
|
201
|
+
console.log(sourceCode);
|
|
202
|
+
let buffer = new smart_buffer_1.SmartBuffer({ size: 8 });
|
|
203
|
+
buffer.writeUInt32LE(threadIndex); // thread_index
|
|
204
|
+
buffer.writeUInt32LE(stackFrameIndex); // stack_frame_index
|
|
205
|
+
buffer.writeStringNT(sourceCode); // source_code
|
|
206
|
+
return this.makeRequest(buffer, Constants_1.COMMANDS.EXECUTE, sourceCode);
|
|
192
207
|
}
|
|
193
208
|
}
|
|
194
209
|
async makeRequest(buffer, command, extraData) {
|
|
@@ -202,92 +217,115 @@ class Debugger {
|
|
|
202
217
|
extraData: extraData
|
|
203
218
|
};
|
|
204
219
|
return new Promise((resolve, reject) => {
|
|
205
|
-
let
|
|
220
|
+
let unsubscribe = this.on('data', (data) => {
|
|
206
221
|
if (data.requestId === requestId) {
|
|
207
|
-
|
|
222
|
+
unsubscribe();
|
|
208
223
|
resolve(data);
|
|
209
224
|
}
|
|
210
225
|
});
|
|
211
|
-
this.controllerClient
|
|
226
|
+
if (this.controllerClient) {
|
|
227
|
+
this.controllerClient.write(buffer.toBuffer());
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
throw new Error(`Controller connection was closed - Command: ${Constants_1.COMMANDS[command]}`);
|
|
231
|
+
}
|
|
212
232
|
});
|
|
213
233
|
}
|
|
214
|
-
parseUnhandledData(
|
|
234
|
+
parseUnhandledData(buffer) {
|
|
235
|
+
if (buffer.length < 1) {
|
|
236
|
+
// short circuit if the buffer is empty
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
215
239
|
if (this.handshakeComplete) {
|
|
216
|
-
let debuggerRequestResponse = new responses_1.
|
|
240
|
+
let debuggerRequestResponse = this.watchPacketLength ? new responses_1.ProtocolEventV3(buffer) : new responses_1.ProtocolEvent(buffer);
|
|
241
|
+
let packetLength = debuggerRequestResponse.packetLength;
|
|
242
|
+
let slicedBuffer = packetLength ? buffer.slice(4) : buffer;
|
|
243
|
+
this.logger.log('incoming data - ', `bytes: ${buffer.length}`, debuggerRequestResponse);
|
|
217
244
|
if (debuggerRequestResponse.success) {
|
|
218
245
|
if (debuggerRequestResponse.requestId > this.totalRequests) {
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
if (debuggerRequestResponse.errorCode !== 'OK') {
|
|
222
|
-
console.error(debuggerRequestResponse.errorCode, debuggerRequestResponse);
|
|
223
|
-
this.removedProcessedBytes(debuggerRequestResponse, unhandledData);
|
|
246
|
+
this.removedProcessedBytes(debuggerRequestResponse, slicedBuffer, packetLength);
|
|
224
247
|
return true;
|
|
225
248
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
this.removedProcessedBytes(debuggerRequestResponse,
|
|
249
|
+
if (debuggerRequestResponse.errorCode !== __1.ERROR_CODES.OK) {
|
|
250
|
+
this.logger.error(debuggerRequestResponse.errorCode, debuggerRequestResponse);
|
|
251
|
+
this.removedProcessedBytes(debuggerRequestResponse, buffer, packetLength);
|
|
229
252
|
return true;
|
|
230
253
|
}
|
|
231
|
-
if (
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
254
|
+
if (debuggerRequestResponse.updateType > 0) {
|
|
255
|
+
this.logger.log('Update Type:', __1.UPDATE_TYPES[debuggerRequestResponse.updateType]);
|
|
256
|
+
switch (debuggerRequestResponse.updateType) {
|
|
257
|
+
case __1.UPDATE_TYPES.IO_PORT_OPENED:
|
|
258
|
+
return this.connectToIoPort(new responses_1.ConnectIOPortResponse(slicedBuffer), buffer, packetLength);
|
|
259
|
+
case __1.UPDATE_TYPES.ALL_THREADS_STOPPED:
|
|
260
|
+
case __1.UPDATE_TYPES.THREAD_ATTACHED:
|
|
261
|
+
let debuggerUpdateThreads = new responses_1.UpdateThreadsResponse(slicedBuffer);
|
|
262
|
+
if (debuggerUpdateThreads.success) {
|
|
263
|
+
this.handleThreadsUpdate(debuggerUpdateThreads);
|
|
264
|
+
this.removedProcessedBytes(debuggerUpdateThreads, slicedBuffer, packetLength);
|
|
265
|
+
return true;
|
|
266
|
+
}
|
|
267
|
+
return false;
|
|
268
|
+
case __1.UPDATE_TYPES.UNDEF:
|
|
269
|
+
return this.checkResponse(new responses_1.UndefinedResponse(slicedBuffer), buffer, packetLength);
|
|
270
|
+
default:
|
|
271
|
+
return this.checkResponse(new responses_1.UndefinedResponse(slicedBuffer), buffer, packetLength);
|
|
236
272
|
}
|
|
237
273
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
274
|
+
else {
|
|
275
|
+
this.logger.log('Command Type:', Constants_1.COMMANDS[this.activeRequests[debuggerRequestResponse.requestId].commandType]);
|
|
276
|
+
switch (this.activeRequests[debuggerRequestResponse.requestId].commandType) {
|
|
277
|
+
case Constants_1.COMMANDS.STOP:
|
|
278
|
+
case Constants_1.COMMANDS.CONTINUE:
|
|
279
|
+
case Constants_1.COMMANDS.STEP:
|
|
280
|
+
case Constants_1.COMMANDS.EXIT_CHANNEL:
|
|
281
|
+
this.removedProcessedBytes(debuggerRequestResponse, buffer, packetLength);
|
|
282
|
+
return true;
|
|
283
|
+
case Constants_1.COMMANDS.EXECUTE:
|
|
284
|
+
return this.checkResponse(new ExecuteResponseV3_1.ExecuteResponseV3(slicedBuffer), buffer, packetLength);
|
|
285
|
+
case Constants_1.COMMANDS.VARIABLES:
|
|
286
|
+
return this.checkResponse(new responses_1.VariableResponse(slicedBuffer), buffer, packetLength);
|
|
287
|
+
case Constants_1.COMMANDS.STACKTRACE:
|
|
288
|
+
return this.checkResponse(packetLength ? new responses_1.StackTraceResponseV3(slicedBuffer) : new responses_1.StackTraceResponse(slicedBuffer), buffer, packetLength);
|
|
289
|
+
case Constants_1.COMMANDS.THREADS:
|
|
290
|
+
return this.checkResponse(new responses_1.ThreadsResponse(slicedBuffer), buffer, packetLength);
|
|
291
|
+
default:
|
|
292
|
+
return this.checkResponse(debuggerRequestResponse, buffer, packetLength);
|
|
250
293
|
}
|
|
251
294
|
}
|
|
252
295
|
}
|
|
253
|
-
let debuggerUpdateThreads = new responses_1.UpdateThreadsResponse(unhandledData);
|
|
254
|
-
if (debuggerUpdateThreads.success) {
|
|
255
|
-
this.handleThreadsUpdate(debuggerUpdateThreads);
|
|
256
|
-
this.removedProcessedBytes(debuggerUpdateThreads, unhandledData);
|
|
257
|
-
return true;
|
|
258
|
-
}
|
|
259
|
-
let debuggerUpdateUndefined = new responses_1.UndefinedResponse(unhandledData);
|
|
260
|
-
if (debuggerUpdateUndefined.success) {
|
|
261
|
-
this.removedProcessedBytes(debuggerUpdateUndefined, unhandledData);
|
|
262
|
-
return true;
|
|
263
|
-
}
|
|
264
|
-
if (!this.connectedToIoPort) {
|
|
265
|
-
let debuggerUpdateConnectIoPort = new responses_1.ConnectIOPortResponse(unhandledData);
|
|
266
|
-
if (debuggerUpdateConnectIoPort.success) {
|
|
267
|
-
this.connectToIoPort(debuggerUpdateConnectIoPort);
|
|
268
|
-
this.removedProcessedBytes(debuggerUpdateConnectIoPort, unhandledData);
|
|
269
|
-
return true;
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
296
|
}
|
|
273
297
|
else {
|
|
274
|
-
let debuggerHandshake
|
|
298
|
+
let debuggerHandshake;
|
|
299
|
+
debuggerHandshake = new responses_1.HandshakeResponseV3(buffer);
|
|
300
|
+
if (!debuggerHandshake.success) {
|
|
301
|
+
debuggerHandshake = new responses_1.HandshakeResponse(buffer);
|
|
302
|
+
}
|
|
275
303
|
if (debuggerHandshake.success) {
|
|
276
304
|
this.handshakeComplete = true;
|
|
277
305
|
this.verifyHandshake(debuggerHandshake);
|
|
278
|
-
this.removedProcessedBytes(debuggerHandshake,
|
|
306
|
+
this.removedProcessedBytes(debuggerHandshake, buffer);
|
|
279
307
|
return true;
|
|
280
308
|
}
|
|
281
309
|
}
|
|
282
310
|
return false;
|
|
283
311
|
}
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
312
|
+
checkResponse(responseClass, unhandledData, packetLength = 0) {
|
|
313
|
+
if (responseClass.success) {
|
|
314
|
+
this.removedProcessedBytes(responseClass, unhandledData, packetLength);
|
|
315
|
+
return true;
|
|
316
|
+
}
|
|
317
|
+
else if (packetLength > 0 && unhandledData.length >= packetLength) {
|
|
318
|
+
this.removedProcessedBytes(responseClass, unhandledData, packetLength);
|
|
319
|
+
}
|
|
320
|
+
return false;
|
|
321
|
+
}
|
|
322
|
+
removedProcessedBytes(responseHandler, unhandledData, packetLength = 0) {
|
|
323
|
+
if (responseHandler.requestId > 0 && this.activeRequests[responseHandler.requestId]) {
|
|
287
324
|
delete this.activeRequests[responseHandler.requestId];
|
|
288
325
|
}
|
|
289
326
|
this.emit('data', responseHandler);
|
|
290
|
-
this.unhandledData = unhandledData.slice(responseHandler.readOffset);
|
|
327
|
+
this.unhandledData = unhandledData.slice(packetLength ? packetLength : responseHandler.readOffset);
|
|
328
|
+
console.log(this.unhandledData.length, responseHandler);
|
|
291
329
|
this.parseUnhandledData(this.unhandledData);
|
|
292
330
|
}
|
|
293
331
|
verifyHandshake(debuggerHandshake) {
|
|
@@ -296,26 +334,27 @@ class Debugger {
|
|
|
296
334
|
this.logger.log('Magic is valid.');
|
|
297
335
|
this.protocolVersion = [debuggerHandshake.majorVersion, debuggerHandshake.minorVersion, debuggerHandshake.patchVersion].join('.');
|
|
298
336
|
this.logger.log('Protocol Version:', this.protocolVersion);
|
|
337
|
+
this.watchPacketLength = debuggerHandshake.watchPacketLength;
|
|
299
338
|
let handshakeVerified = true;
|
|
300
339
|
if (semver.satisfies(this.protocolVersion, this.supportedVersionRange)) {
|
|
301
340
|
this.logger.log('supported');
|
|
302
341
|
this.emit('protocol-version', {
|
|
303
342
|
message: `Protocol Version ${this.protocolVersion} is supported!`,
|
|
304
|
-
errorCode:
|
|
343
|
+
errorCode: Constants_1.PROTOCOL_ERROR_CODES.SUPPORTED
|
|
305
344
|
});
|
|
306
345
|
}
|
|
307
346
|
else if (semver.gtr(this.protocolVersion, this.supportedVersionRange)) {
|
|
308
347
|
this.logger.log('not tested');
|
|
309
348
|
this.emit('protocol-version', {
|
|
310
349
|
message: `Protocol Version ${this.protocolVersion} has not been tested and my not work as intended.\nPlease open any issues you have with this version to https://github.com/rokucommunity/roku-debug/issues`,
|
|
311
|
-
errorCode:
|
|
350
|
+
errorCode: Constants_1.PROTOCOL_ERROR_CODES.NOT_TESTED
|
|
312
351
|
});
|
|
313
352
|
}
|
|
314
353
|
else {
|
|
315
354
|
this.logger.log('not supported');
|
|
316
355
|
this.emit('protocol-version', {
|
|
317
|
-
message: `Protocol Version ${this.protocolVersion} is not supported.\nIf you believe this is an error please open an
|
|
318
|
-
errorCode:
|
|
356
|
+
message: `Protocol Version ${this.protocolVersion} is not supported.\nIf you believe this is an error please open an issue at https://github.com/rokucommunity/roku-debug/issues`,
|
|
357
|
+
errorCode: Constants_1.PROTOCOL_ERROR_CODES.NOT_SUPPORTED
|
|
319
358
|
});
|
|
320
359
|
this.shutdown('close');
|
|
321
360
|
handshakeVerified = false;
|
|
@@ -330,61 +369,66 @@ class Debugger {
|
|
|
330
369
|
return false;
|
|
331
370
|
}
|
|
332
371
|
}
|
|
333
|
-
connectToIoPort(connectIoPortResponse) {
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
else {
|
|
350
|
-
if (lastPartialLine) {
|
|
351
|
-
// there was leftover lines, join the partial lines back together
|
|
352
|
-
responseText = lastPartialLine + responseText;
|
|
353
|
-
lastPartialLine = '';
|
|
372
|
+
connectToIoPort(connectIoPortResponse, unhandledData, packetLength = 0) {
|
|
373
|
+
if (connectIoPortResponse.success) {
|
|
374
|
+
// Create a new TCP client.
|
|
375
|
+
this.ioClient = new Net.Socket();
|
|
376
|
+
// Send a connection request to the server.
|
|
377
|
+
this.logger.log('Connect to IO Port: port', connectIoPortResponse.data, 'host', this.options.host);
|
|
378
|
+
this.ioClient.connect({ port: connectIoPortResponse.data, host: this.options.host }, () => {
|
|
379
|
+
// If there is no error, the server has accepted the request
|
|
380
|
+
this.logger.log('TCP connection established with the IO Port.');
|
|
381
|
+
this.connectedToIoPort = true;
|
|
382
|
+
let lastPartialLine = '';
|
|
383
|
+
this.ioClient.on('data', (buffer) => {
|
|
384
|
+
let responseText = buffer.toString();
|
|
385
|
+
if (!responseText.endsWith('\n')) {
|
|
386
|
+
// buffer was split, save the partial line
|
|
387
|
+
lastPartialLine += responseText;
|
|
354
388
|
}
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
this.ioClient.end()
|
|
366
|
-
|
|
389
|
+
else {
|
|
390
|
+
if (lastPartialLine) {
|
|
391
|
+
// there was leftover lines, join the partial lines back together
|
|
392
|
+
responseText = lastPartialLine + responseText;
|
|
393
|
+
lastPartialLine = '';
|
|
394
|
+
}
|
|
395
|
+
// Emit the completed io string.
|
|
396
|
+
this.emit('io-output', responseText.trim());
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
this.ioClient.on('end', () => {
|
|
400
|
+
this.ioClient.end();
|
|
401
|
+
this.logger.log('Requested an end to the IO connection');
|
|
402
|
+
});
|
|
403
|
+
// Don't forget to catch error, for your own sake.
|
|
404
|
+
this.ioClient.once('error', (err) => {
|
|
405
|
+
this.ioClient.end();
|
|
406
|
+
this.logger.log(`Error: ${err}`);
|
|
407
|
+
});
|
|
408
|
+
this.emit('connected', true);
|
|
367
409
|
});
|
|
368
|
-
this.
|
|
369
|
-
|
|
410
|
+
this.removedProcessedBytes(connectIoPortResponse, unhandledData, packetLength);
|
|
411
|
+
return true;
|
|
412
|
+
}
|
|
413
|
+
return false;
|
|
370
414
|
}
|
|
371
415
|
async handleThreadsUpdate(update) {
|
|
372
416
|
this.stopped = true;
|
|
373
417
|
let stopReason = update.data.stopReason;
|
|
374
|
-
let eventName = stopReason ===
|
|
375
|
-
if (update.updateType ===
|
|
418
|
+
let eventName = stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR ? 'runtime-error' : 'suspend';
|
|
419
|
+
if (update.updateType === __1.UPDATE_TYPES.ALL_THREADS_STOPPED) {
|
|
376
420
|
if (!this.firstRunContinueFired && !this.options.stopOnEntry) {
|
|
377
421
|
this.logger.log('Sending first run continue command');
|
|
378
422
|
await this.continue();
|
|
379
423
|
this.firstRunContinueFired = true;
|
|
380
424
|
}
|
|
381
|
-
else if (stopReason ===
|
|
425
|
+
else if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
|
|
382
426
|
this.primaryThread = update.data.primaryThreadIndex;
|
|
383
427
|
this.stackFrameIndex = 0;
|
|
384
428
|
this.emit(eventName, update);
|
|
385
429
|
}
|
|
386
430
|
}
|
|
387
|
-
else if (stopReason ===
|
|
431
|
+
else if (stopReason === Constants_1.STOP_REASONS.RUNTIME_ERROR || stopReason === Constants_1.STOP_REASONS.BREAK || stopReason === Constants_1.STOP_REASONS.STOP_STATEMENT) {
|
|
388
432
|
this.primaryThread = update.data.threadIndex;
|
|
389
433
|
this.emit(eventName, update);
|
|
390
434
|
}
|
|
@@ -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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"}
|
|
@@ -9,6 +9,8 @@ class ConnectIOPortResponse {
|
|
|
9
9
|
this.readOffset = 0;
|
|
10
10
|
// response fields
|
|
11
11
|
this.requestId = -1;
|
|
12
|
+
this.errorCode = -1;
|
|
13
|
+
this.updateType = -1;
|
|
12
14
|
this.data = -1;
|
|
13
15
|
// The minimum size of a connect to IO port request
|
|
14
16
|
if (buffer.byteLength >= 16) {
|
|
@@ -17,10 +19,10 @@ class ConnectIOPortResponse {
|
|
|
17
19
|
this.requestId = bufferReader.readUInt32LE(); // request_id
|
|
18
20
|
// Updates will always have an id of zero because we didn't ask for this information
|
|
19
21
|
if (this.requestId === 0) {
|
|
20
|
-
this.errorCode =
|
|
21
|
-
this.updateType =
|
|
22
|
+
this.errorCode = bufferReader.readUInt32LE(); // error_code
|
|
23
|
+
this.updateType = bufferReader.readUInt32LE(); // update_type
|
|
22
24
|
// Only handle IO port events in this class
|
|
23
|
-
if (this.updateType ===
|
|
25
|
+
if (this.updateType === Constants_1.UPDATE_TYPES.IO_PORT_OPENED) {
|
|
24
26
|
this.data = bufferReader.readUInt32LE(); // data
|
|
25
27
|
this.readOffset = bufferReader.readOffset;
|
|
26
28
|
this.success = true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConnectIOPortResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ConnectIOPortResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAAyD;AAEzD,MAAa,qBAAqB;IAE9B,YAAY,MAAc;QAwBnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ConnectIOPortResponse.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ConnectIOPortResponse.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,4CAAyD;AAEzD,MAAa,qBAAqB;IAE9B,YAAY,MAAc;QAwBnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QAEtB,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,eAAU,GAAG,CAAC,CAAC,CAAC;QAChB,SAAI,GAAG,CAAC,CAAC,CAAC;QA9Bb,mDAAmD;QACnD,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE;YACzB,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,oFAAoF;gBACpF,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;oBACtB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;oBAC3D,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,cAAc;oBAE7D,2CAA2C;oBAC3C,IAAI,IAAI,CAAC,UAAU,KAAK,wBAAY,CAAC,cAAc,EAAE;wBACjD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,OAAO;wBAChD,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;wBAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;qBACvB;iBACJ;aACJ;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CASJ;AAlCD,sDAkCC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { SmartBuffer } from 'smart-buffer';
|
|
3
|
+
export declare class ExecuteResponseV3 {
|
|
4
|
+
constructor(buffer: Buffer);
|
|
5
|
+
success: boolean;
|
|
6
|
+
readOffset: number;
|
|
7
|
+
/**
|
|
8
|
+
* true if code ran and completed without errors, false otherwise
|
|
9
|
+
*/
|
|
10
|
+
executeSuccess: boolean;
|
|
11
|
+
runtimeStopCode: number;
|
|
12
|
+
compileErrors: ExecuteErrors;
|
|
13
|
+
runtimeErrors: ExecuteErrors;
|
|
14
|
+
otherErrors: ExecuteErrors;
|
|
15
|
+
requestId: number;
|
|
16
|
+
errorCode: number;
|
|
17
|
+
}
|
|
18
|
+
declare class ExecuteErrors {
|
|
19
|
+
constructor(bufferReader: SmartBuffer);
|
|
20
|
+
success: boolean;
|
|
21
|
+
messages: string[];
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExecuteResponseV3 = void 0;
|
|
4
|
+
const smart_buffer_1 = require("smart-buffer");
|
|
5
|
+
const util_1 = require("../../util");
|
|
6
|
+
class ExecuteResponseV3 {
|
|
7
|
+
constructor(buffer) {
|
|
8
|
+
this.success = false;
|
|
9
|
+
this.readOffset = 0;
|
|
10
|
+
/**
|
|
11
|
+
* true if code ran and completed without errors, false otherwise
|
|
12
|
+
*/
|
|
13
|
+
this.executeSuccess = false;
|
|
14
|
+
// response fields
|
|
15
|
+
this.requestId = -1;
|
|
16
|
+
this.errorCode = -1;
|
|
17
|
+
// The smallest a request response can be
|
|
18
|
+
if (buffer.byteLength >= 12) {
|
|
19
|
+
try {
|
|
20
|
+
let bufferReader = smart_buffer_1.SmartBuffer.fromBuffer(buffer);
|
|
21
|
+
this.requestId = bufferReader.readUInt32LE(); // request_id
|
|
22
|
+
this.errorCode = bufferReader.readUInt32LE(); // error_code
|
|
23
|
+
this.executeSuccess = bufferReader.readUInt8() !== 0; //execute_success
|
|
24
|
+
this.runtimeStopCode = bufferReader.readUInt8(); //runtime_stop_code
|
|
25
|
+
this.compileErrors = new ExecuteErrors(bufferReader);
|
|
26
|
+
this.runtimeErrors = new ExecuteErrors(bufferReader);
|
|
27
|
+
this.otherErrors = new ExecuteErrors(bufferReader);
|
|
28
|
+
this.success = this.compileErrors.success && this.runtimeErrors.success && this.otherErrors.success;
|
|
29
|
+
this.readOffset = bufferReader.readOffset;
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
// Could not parse
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.ExecuteResponseV3 = ExecuteResponseV3;
|
|
38
|
+
class ExecuteErrors {
|
|
39
|
+
constructor(bufferReader) {
|
|
40
|
+
this.success = false;
|
|
41
|
+
this.messages = [];
|
|
42
|
+
if (bufferReader.length >= 4) {
|
|
43
|
+
const errorCount = bufferReader.readUInt32LE();
|
|
44
|
+
for (let i = 0; i < errorCount; i++) {
|
|
45
|
+
const message = util_1.util.readStringNT(bufferReader);
|
|
46
|
+
if (message) {
|
|
47
|
+
this.messages.push(message);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
this.success = this.messages.length === errorCount;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=ExecuteResponseV3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExecuteResponseV3.js","sourceRoot":"","sources":["../../../src/debugProtocol/responses/ExecuteResponseV3.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,qCAAkC;AAElC,MAAa,iBAAiB;IAC1B,YAAY,MAAc;QAqBnB,YAAO,GAAG,KAAK,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QACtB;;WAEG;QACI,mBAAc,GAAG,KAAK,CAAC;QAO9B,kBAAkB;QACX,cAAS,GAAG,CAAC,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC,CAAC;QAlClB,yCAAyC;QACzC,IAAI,MAAM,CAAC,UAAU,IAAI,EAAE,EAAE;YACzB,IAAI;gBACA,IAAI,YAAY,GAAG,0BAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC3D,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,aAAa;gBAC3D,IAAI,CAAC,cAAc,GAAG,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,iBAAiB;gBACvE,IAAI,CAAC,eAAe,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,mBAAmB;gBAEpE,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;gBACrD,IAAI,CAAC,WAAW,GAAG,IAAI,aAAa,CAAC,YAAY,CAAC,CAAC;gBAEnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gBACpG,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC;aAC7C;YAAC,OAAO,KAAK,EAAE;gBACZ,kBAAkB;aACrB;SACJ;IACL,CAAC;CAgBJ;AArCD,8CAqCC;AAED,MAAM,aAAa;IACf,YAAmB,YAAyB;QAarC,YAAO,GAAG,KAAK,CAAC;QAEhB,aAAQ,GAAa,EAAE,CAAC;QAd3B,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE;YAC1B,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;gBACjC,MAAM,OAAO,GAAG,WAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,OAAO,EAAE;oBACT,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBAC/B;aACJ;YACD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC;SACtD;IACL,CAAC;CAKJ"}
|