Skip to content

AmnaKhan1323/SandboxDebugger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐛 sandbox-debugger 🐛

js-standard-style

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 --scheme http

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 --scheme http

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, and require('./debug.cjs') instead of sandbox-debugger

ESM example

  import { createRequire } from 'node:module'
  const require = createRequire(import.meta.url)
  require('./debug.cjs')

license

Apache License, Version 2.0