roku-debug 0.9.1 → 0.9.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
CHANGED
|
@@ -6,6 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
|
+
## [0.9.2](https://github.com/rokucommunity/brighterscript/compare/v0.9.1...v0.9.2) - 2022-01-12
|
|
10
|
+
### Fixed
|
|
11
|
+
- bug with telnet debug session related to fire-and-forget commands like `step`, `continue`, etc. This was causing the debug session to stall frequently. ([#64](https://github.com/rokucommunity/roku-debug/pull/64))
|
|
12
|
+
- combine telnet output that was split due to buffer sizes ([#64](https://github.com/rokucommunity/roku-debug/pull/64))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
9
16
|
## [0.9.1](https://github.com/rokucommunity/brighterscript/compare/v0.9.0...v0.9.1) - 2022-01-05
|
|
10
17
|
### Fixed
|
|
11
18
|
- issue where `"consoleOutput": "full"` shows no output when `enableDebugProtocol === true`. ([#65](https://github.com/rokucommunity/roku-debug/pull/65))
|
|
@@ -23,6 +23,10 @@ export declare class TelnetRequestPipeline {
|
|
|
23
23
|
* during a command execute, or a message split across multiple telnet terminals
|
|
24
24
|
*/
|
|
25
25
|
unhandledText: string;
|
|
26
|
+
/**
|
|
27
|
+
* Stores split telnet messages for next call to `handleData`
|
|
28
|
+
*/
|
|
29
|
+
private buffer;
|
|
26
30
|
private handleData;
|
|
27
31
|
/**
|
|
28
32
|
* Send a command to the device immediately, without waiting for a response, and without worrying about
|
|
@@ -18,6 +18,10 @@ class TelnetRequestPipeline {
|
|
|
18
18
|
* during a command execute, or a message split across multiple telnet terminals
|
|
19
19
|
*/
|
|
20
20
|
this.unhandledText = '';
|
|
21
|
+
/**
|
|
22
|
+
* Stores split telnet messages for next call to `handleData`
|
|
23
|
+
*/
|
|
24
|
+
this.buffer = '';
|
|
21
25
|
/**
|
|
22
26
|
* Used to help with logging
|
|
23
27
|
*/
|
|
@@ -52,9 +56,16 @@ class TelnetRequestPipeline {
|
|
|
52
56
|
handleData(data) {
|
|
53
57
|
const logger = this.logger.createLogger(`[${TelnetRequestPipeline.prototype.handleData.name}]`);
|
|
54
58
|
logger.debug('Raw telnet data', { data }, util_1.util.fence(data));
|
|
59
|
+
this.buffer += data;
|
|
60
|
+
//if the buffer was split, wait for more incoming data
|
|
61
|
+
if (!this.buffer.endsWith('\n') && !util_1.util.endsWithDebuggerPrompt(this.buffer) && !util_1.util.endsWithThreadAttachedText(this.buffer)) {
|
|
62
|
+
logger.debug('Buffer was split. Wait for more incoming data before proceeding', { buffer: this.buffer });
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
55
65
|
//forward all raw console output to listeners
|
|
56
|
-
this.emit('console-output',
|
|
57
|
-
this.unhandledText +=
|
|
66
|
+
this.emit('console-output', this.buffer);
|
|
67
|
+
this.unhandledText += this.buffer;
|
|
68
|
+
this.buffer = '';
|
|
58
69
|
//ensure all debugger prompts appear completely on their own line
|
|
59
70
|
this.unhandledText = util_1.util.ensureDebugPromptOnOwnLine(this.unhandledText);
|
|
60
71
|
//discard all the "thread attached" messages as we find
|
|
@@ -80,7 +91,7 @@ class TelnetRequestPipeline {
|
|
|
80
91
|
this.unhandledText = '';
|
|
81
92
|
}
|
|
82
93
|
else {
|
|
83
|
-
//
|
|
94
|
+
// wait for more incoming data
|
|
84
95
|
}
|
|
85
96
|
//we can safely try to execute next command. if we're ready, it'll execute. if not, it'll wait.
|
|
86
97
|
this.executeNextCommand();
|
|
@@ -135,10 +146,18 @@ class TelnetRequestPipeline {
|
|
|
135
146
|
//we can only execute commands when we're at a debugger prompt. If we're not, then we'll wait until the next chunk of incoming data to try again to execute the command
|
|
136
147
|
if (this.isAtDebuggerPrompt) {
|
|
137
148
|
//get the next command from the queue
|
|
138
|
-
|
|
139
|
-
logger.log('Process the next command', { remainingCommands: this.commands.length, activeCommand:
|
|
149
|
+
const command = this.commands.shift();
|
|
150
|
+
logger.log('Process the next command', { remainingCommands: this.commands.length, activeCommand: command });
|
|
151
|
+
//if the active command does NOT want to wait for a prompt, then remove it as the active command so it doesn't consume incoming telnet
|
|
152
|
+
if (command.waitForPrompt) {
|
|
153
|
+
logger.log('waitForCommand is true, so set as active command');
|
|
154
|
+
this.activeCommand = command;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
logger.log('waitForCommand is false, so do not set as active command');
|
|
158
|
+
}
|
|
140
159
|
//run the command. the on('data') event will handle launching the next command once this one has finished processing
|
|
141
|
-
|
|
160
|
+
command.execute();
|
|
142
161
|
}
|
|
143
162
|
}
|
|
144
163
|
destroy() {
|
|
@@ -175,10 +194,12 @@ class Command {
|
|
|
175
194
|
let commandText = `${this.commandText}\r\n`;
|
|
176
195
|
this.pipeline.emit('console-output', commandText);
|
|
177
196
|
this.pipeline.client.write(commandText);
|
|
178
|
-
if
|
|
179
|
-
|
|
180
|
-
this.
|
|
197
|
+
//if we're not waiting for a prompt, immediately resolve this command
|
|
198
|
+
if (!this.waitForPrompt) {
|
|
199
|
+
this.deferred.resolve(null);
|
|
181
200
|
}
|
|
201
|
+
// The act of executing this command means we are no longer at the debug prompt
|
|
202
|
+
this.pipeline.isAtDebuggerPrompt = false;
|
|
182
203
|
}
|
|
183
204
|
catch (e) {
|
|
184
205
|
this.logger.error('Error executing command', e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TelnetRequestPipeline.js","sourceRoot":"","sources":["../../src/adapters/TelnetRequestPipeline.ts"],"names":[],"mappings":";;;AACA,8CAA8C;AAC9C,kCAA+B;AAE/B,wCAA0C;AAC1C,mDAA0C;AAE1C,MAAa,qBAAqB;IAC9B,YACW,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAKjB,WAAM,GAAG,IAAA,sBAAY,EAAC,IAAI,qBAAqB,CAAC,IAAI,GAAG,CAAC,CAAC;QAEzD,aAAQ,GAAc,EAAE,CAAC;QAE1B,uBAAkB,GAAG,KAAK,CAAC;QAU1B,kBAAa,GAAY,SAAS,CAAC;QAEnC,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QA6BrC;;;WAGG;QACI,kBAAa,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"TelnetRequestPipeline.js","sourceRoot":"","sources":["../../src/adapters/TelnetRequestPipeline.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
index 4c1a51d..94e5756 100644
|
|
|
Binary file
|