From 1e6bd433d191683bc220f0b0f8b73071aed58a2d Mon Sep 17 00:00:00 2001 From: Kelvin Jin Date: Wed, 26 Sep 2018 18:20:43 -0700 Subject: [PATCH] fix: use well-formatted URLs when setting breakpoints --- src/agent/state/inspector-state.ts | 10 +++++++++- src/agent/v8/inspector-debugapi.ts | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/agent/state/inspector-state.ts b/src/agent/state/inspector-state.ts index 329e8b262..4fffcf308 100644 --- a/src/agent/state/inspector-state.ts +++ b/src/agent/state/inspector-state.ts @@ -276,7 +276,15 @@ class StateResolver { if (this.scriptmapper[scriptId].url === undefined) { return ''; } - return this.scriptmapper[scriptId].url; + const scriptUrl = this.scriptmapper[scriptId].url; + if (scriptUrl.startsWith('file://')) { + // In Node 11+, non-internal files are formatted as URLs, so get just the + // path. + return scriptUrl.slice('file://'.length); + } else { + // Internal files should be returned as is. + return scriptUrl; + } } resolveRelativePath_(frame: inspector.Debugger.CallFrame): string { diff --git a/src/agent/v8/inspector-debugapi.ts b/src/agent/v8/inspector-debugapi.ts index 6c4cc3340..5cb6077e1 100644 --- a/src/agent/v8/inspector-debugapi.ts +++ b/src/agent/v8/inspector-debugapi.ts @@ -370,7 +370,7 @@ export class InspectorDebugApi implements debugapi.DebugApi { const res = this.v8Inspector.setBreakpointByUrl({ lineNumber: line - 1, - url: matchingScript, + url: `file://${matchingScript}`, columnNumber: column - 1, condition: breakpoint.condition || undefined });