Skip to content

inspector: implement sub process inspection. #16627

Closed

Description

@eugeneo

This is an umbrella bug for implementing the functionality outlined here - nodejs/diagnostics#77

This implementation will land in several stages. Current plan is as follows:

  • Custom inspector message dispatcher. This stage will allow extending the Inspector protocol beyond domains provided by the V8
  • Provide Node.js implementaion for the Target protocol as outlined here
  • Provide communication channel between Node.js instances that runs outside the regular event loop (akin to Inspector WS server). This is necessary so the child instances are still accessible while the head instance is busy or is suspended on a breakpoint.
  • Integrate with process.fork and process.spawn, if possible. This will make debugging child processes easier.

Activity

  1. self-assigned this
    on Oct 30, 2017
  2. added
    inspectorIssues and PRs related to the V8 inspector protocol.
    child_processIssues and PRs related to the child_process subsystem.
    on Oct 30, 2017
  3. eugeneo commented on Oct 31, 2017

    @eugeneo
    ContributorAuthor

    For the item#3 (communication channel) the proposal is to introduce a new command line flag --inspector-pipe=path/to/pipe so parent process can communicate with child processes without child process listening on a socket. Pipe IO will be using same thread that is currently used for the inspector WS server.

  4. eugeneo commented on Oct 31, 2017

    @eugeneo
    ContributorAuthor

    Pull request to check first two check boxes: #16629

  5. TimothyGu commented on Oct 31, 2017

    @TimothyGu
    Member

    This should also make it (more) possible to implement inspector for workers (ayojs/ayo#58).

  6. eugeneo commented on Feb 26, 2018

    @eugeneo
    ContributorAuthor

    Chrome protocol has a major limitation that it relies on the parent target to outlive the children (as it is true in Web Platform use-case). This limitation greatly reduces usability in the Node.js case, which, coupled with amount of changes required in a platform, greatly reduces appeal. We are working on an alternative approach prototype.

  7. boneskull commented on Mar 7, 2018

    @boneskull
    Member

    @eugeneo Is this effort tracked publicly anywhere?

  8. eugeneo commented on Mar 7, 2018

    @eugeneo
    ContributorAuthor

    No, there is no hard commitment. It some experiments our team is run, that's all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

child_processIssues and PRs related to the child_process subsystem.inspectorIssues and PRs related to the V8 inspector protocol.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions