sandbox-debugger

0.2.44 • Public • Published

sandbox-debugger

js-standard-style ci automerge Docker Image CI downloads Docker Pulls

Debug a Node.js process anywhere using chrome://inspect or node-inspect

node debug port 9229 sandbox debug client sandbox debug broker

Interactive debugging using inspect, debug the same way you do with a local process.

Supports a Node.js process running

How it works?

Node opens a websocket when in debug mode, both the sandbox server and client work by piping the websocket data via the broker.

Run sandbox server

The server is used as a gatekeeper for the debug messages.

npx sandbox-debugger-server

or

ᐅ docker run \
  --name sandbox-debugger \
  -ti \
  --rm \
  -p 9229:9229 \
  jameskyburz/sandbox-debugger

The server will output

   Debug server started!                       
                                               
    - To debug a new process:                  
      export DEBUG_PROXY=xxx.xxx.x.xxx:9229    
      node index.js                            
                                               
    - To debug an existing process:            
      export DEBUG_PROXY=xxx.xxx.x.xxx:9229    
      export DEBUG_PID=<pid of node process>   
      npx sandbox-debugger                     

    - Find pid of first running Node.js process
      ps ax |
      grep 'no[d]e ' |
      awk '{print $1}' |
      head -n 1
                                               
    - Allow remote access to me:              
      npx ngrok http 9229                      

Create a tunnel to our sandbox server process

Using ngrok you can tunnel to the locally running broker from for example aws lambda.

npx ngrok http 9229

Client

Example debug current process

// index.js
require('sandbox-debugger')
debugger
console.log('all done')

# DEBUG_PROXY is ip:port to sandbox broker
DEBUG_PROXY=ip:port node index.js

Example debug an already running process

# DEBUG_PROXY is ip:port to sandbox broker
# DEBUG_PID is pid of process to debug
DEBUG_PROXY=ip:port DEBUG_PID=x npx sandbox-debugger

AWS Lambda

Environment variable DEBUG_PROXY needs to point to the ngrok address including the port part :80.

The easiest way to debug lambda is to edit the code in aws console.

  • Copy the contents of https://unpkg.com/sandbox-debugger@latest/dist/index.js to debug.js
  • require('./debug.js') instead of sandbox-debugger

or

Use a lambda layer containing the sandbox-debugger, you can publish your own for node 12 here and also node 10 here.

license

Apache License, Version 2.0

Dependencies (0)

    Dev Dependencies (6)

    Package Sidebar

    Install

    npm i sandbox-debugger

    Weekly Downloads

    3

    Version

    0.2.44

    License

    Apache-2.0

    Unpacked Size

    54.7 kB

    Total Files

    3

    Last publish

    Collaborators

    • jameskyburz