Autogenerate debug files

Summary:
Release note: none

- autogenerate the debugger communication files in the /tmp/ directory
- remove user input debug files in CLI
Closes https://github.com/facebook/prepack/pull/1230

Differential Revision: D6513228

Pulled By: JWZ2018

fbshipit-source-id: 80cc171549a8f8c03a80826a9af459c79ab239a3
This commit is contained in:
Wuhan Zhou 2017-12-07 15:12:49 -08:00 committed by Facebook Github Bot
parent 1961e705f2
commit e5093ba73b
4 changed files with 14 additions and 31 deletions

View File

@ -21,7 +21,6 @@ import type {
PrepackLaunchArguments, PrepackLaunchArguments,
} from "./../common/types.js"; } from "./../common/types.js";
import { DebuggerConstants } from "./../common/DebuggerConstants.js"; import { DebuggerConstants } from "./../common/DebuggerConstants.js";
import path from "path";
/* An implementation of an debugger adapter adhering to the VSCode Debug protocol /* An implementation of an debugger adapter adhering to the VSCode Debug protocol
* The adapter is responsible for communication between the UI and Prepack * The adapter is responsible for communication between the UI and Prepack
@ -39,6 +38,17 @@ class PrepackDebugSession extends DebugSession {
_clientID: void | string; _clientID: void | string;
_adapterChannel: AdapterChannel; _adapterChannel: AdapterChannel;
_generateDebugFilePath(direction: "in" | "out") {
let time = Date.now();
let filePath = "/tmp/";
if (direction === "in") {
filePath += `prepack-debug-engine2adapter-${time}.txt`;
} else {
filePath += `prepack-debug-adapter2engine-${time}.txt`;
}
return filePath;
}
_registerMessageCallbacks() { _registerMessageCallbacks() {
this._adapterChannel.registerChannelEvent(DebugMessage.PREPACK_READY_RESPONSE, (response: DebuggerResponse) => { this._adapterChannel.registerChannelEvent(DebugMessage.PREPACK_READY_RESPONSE, (response: DebuggerResponse) => {
this.sendEvent(new StoppedEvent("entry", DebuggerConstants.PREPACK_THREAD_ID)); this.sendEvent(new StoppedEvent("entry", DebuggerConstants.PREPACK_THREAD_ID));
@ -98,8 +108,8 @@ class PrepackDebugSession extends DebugSession {
// Override // Override
launchRequest(response: DebugProtocol.LaunchResponse, args: LaunchRequestArguments): void { launchRequest(response: DebugProtocol.LaunchResponse, args: LaunchRequestArguments): void {
let inFilePath = path.join(__dirname, "../common/", args.debugInFilePath); let inFilePath = this._generateDebugFilePath("in");
let outFilePath = path.join(__dirname, "../common/", args.debugOutFilePath); let outFilePath = this._generateDebugFilePath("out");
// set up the communication channel // set up the communication channel
this._adapterChannel = new AdapterChannel(inFilePath, outFilePath); this._adapterChannel = new AdapterChannel(inFilePath, outFilePath);
this._registerMessageCallbacks(); this._registerMessageCallbacks();

View File

@ -158,8 +158,6 @@ export interface LaunchRequestArguments extends DebugProtocol.LaunchRequestArgum
sourceFile: string, sourceFile: string,
prepackRuntime: string, prepackRuntime: string,
prepackArguments: Array<string>, prepackArguments: Array<string>,
debugInFilePath: string,
debugOutFilePath: string,
} }
export type SteppingType = "Step Into" | "Step Over"; export type SteppingType = "Step Into" | "Step Over";

View File

@ -21,8 +21,6 @@ export type DebuggerCLIArguments = {
prepackRuntime: string, prepackRuntime: string,
sourceFile: string, sourceFile: string,
prepackArguments: Array<string>, prepackArguments: Array<string>,
debugInFilePath: string,
debugOutFilePath: string,
}; };
//separator for messages according to the protocol //separator for messages according to the protocol
@ -39,8 +37,6 @@ export class UISession {
this._prepackRuntime = args.prepackRuntime; this._prepackRuntime = args.prepackRuntime;
this._sourceFile = args.sourceFile; this._sourceFile = args.sourceFile;
this._prepackArguments = args.prepackArguments; this._prepackArguments = args.prepackArguments;
this._inFilePath = args.debugInFilePath;
this._outFilePath = args.debugOutFilePath;
this._sequenceNum = 1; this._sequenceNum = 1;
this._invalidCount = 0; this._invalidCount = 0;
this._dataHandler = new DataHandler(); this._dataHandler = new DataHandler();
@ -51,10 +47,6 @@ export class UISession {
_proc: Process; _proc: Process;
//path to the debug adapter //path to the debug adapter
_adapterPath: string; _adapterPath: string;
// path to debugger input file
_inFilePath: string;
// path to debugger output file
_outFilePath: string;
// the child (i.e. adapter) process // the child (i.e. adapter) process
_adapterProcess: child_process.ChildProcess; _adapterProcess: child_process.ChildProcess;
@ -177,8 +169,6 @@ export class UISession {
prepackRuntime: this._prepackRuntime, prepackRuntime: this._prepackRuntime,
sourceFile: this._sourceFile, sourceFile: this._sourceFile,
prepackArguments: this._prepackArguments, prepackArguments: this._prepackArguments,
debugInFilePath: this._inFilePath,
debugOutFilePath: this._outFilePath,
}; };
this._sendLaunchRequest(launchArgs); this._sendLaunchRequest(launchArgs);
} }

View File

@ -31,8 +31,6 @@ function readCLIArguments(process, console): DebuggerCLIArguments {
let prepackRuntime = ""; let prepackRuntime = "";
let prepackArguments = []; let prepackArguments = [];
let sourceFile = ""; let sourceFile = "";
let debugInFilePath = "";
let debugOutFilePath = "";
let args = Array.from(process.argv); let args = Array.from(process.argv);
args.splice(0, 2); args.splice(0, 2);
@ -52,23 +50,12 @@ function readCLIArguments(process, console): DebuggerCLIArguments {
prepackArguments = args.shift().split(" "); prepackArguments = args.shift().split(" ");
} else if (arg === "sourceFile") { } else if (arg === "sourceFile") {
sourceFile = args.shift(); sourceFile = args.shift();
} else if (arg === "debugInFilePath") {
debugInFilePath = args.shift();
} else if (arg === "debugOutFilePath") {
debugOutFilePath = args.shift();
} else { } else {
console.error("Unknown argument: " + arg); console.error("Unknown argument: " + arg);
process.exit(1); process.exit(1);
} }
} }
if (debugInFilePath.length === 0) {
console.error("No debugger input file path provided!");
process.exit(1);
}
if (debugOutFilePath.length === 0) {
console.error("No debugger output file path provided!");
process.exit(1);
}
if (adapterPath.length === 0) { if (adapterPath.length === 0) {
console.error("No path to the debug adapter provided!"); console.error("No path to the debug adapter provided!");
process.exit(1); process.exit(1);
@ -85,8 +72,6 @@ function readCLIArguments(process, console): DebuggerCLIArguments {
prepackRuntime: prepackRuntime, prepackRuntime: prepackRuntime,
prepackArguments: prepackArguments, prepackArguments: prepackArguments,
sourceFile: sourceFile, sourceFile: sourceFile,
debugInFilePath: debugInFilePath,
debugOutFilePath: debugOutFilePath,
}; };
return result; return result;
} }