Closed
Description
- Version: each starting Node 6 when Node gets V8Inspector.
- Platform: all.
- Subsystem: inspector.
V8Inspector exposes protocol for inspection and debugging node state. There are a lot of different URL exposures:
- some notification contains a URL as a field, e.g., Debugger.scriptParsed or Runtime.consoleAPICalled
- some method takes URL as an argument, e.g., Debugger.setBreakpointByUrl or as part of regexp pattern, e.g., Debugger.setBlackboxPatterns.
Node internally uses the platform-specific path as script URL in some cases and file URL in other (see --experimental-modules). It makes using protocol much harder, e.g., when we need to set breakpoint ahead of time, we need to generate RegExp that will match platform-specific path and file URL to be ready for a different way how Node executes module.
I have a plan to make everything better:
- Add new V8InspectorClient method: resourceNameToURL. V8Inspector calls this method whenever getting a new URL from Node, e.g., when the new script is parsed.
- Implement this method for Node. Node implementation will normalize the platform-specific path to the file URL.
- Backport these two patches through Node 10 back to 8 since they should not affect anything in runtime and will make a life of different Node tools much easier.