Terminal based Devtools for Node
$ npm i -g terminal-devtools
$ devtools [--port <port>] [--host <host>]
By default devtools
will connect to the default debugger port (5858)
$ devtools <pid>
When a valid node
Process ID is passed, devtools
will send a SIGUSR2
signal to the process, putting it into debug mode then connect to port
5858.
-
? - help and settings
-
c - continue, resume if paused, pause if resumed
-
n - step next
-
i - step iinto
-
o - step out of
-
b - set breakpoint (must be in code text panel)
-
tab - move forward between panels
-
shift+tab - move backward between panels
-
ctrl+n - navigator
-
ctrl+t - code text
-
ctrl+s - callstack
-
ctrl+p - breakpoints
-
ctrl+o - scope
-
ctrl+k - console panel
-
2 - select Console tab
-
arrow keys and vi keys (hjkl) control selections in panels
-
the mouse can also be used to select tabs, panels and items
Put a service into debug mode, break on first line
$ node --debug-brk examples/simple
Connect to default debug port
$ devtools
If we need to use more than debug port we can specify
Expose debug port as 5859
$ node --debug-brk=5859 examples/debugger-single-tick
Connect to custom debug port
$ devtools --port 5859
Start a process as normal, debug mode is completely off
$ node examples/debugger
3879
Process handily outputs PID, pass it to devtools
$ devtools 3879
devtools
puts process into debug mode and connects to debugger.
There are two supported layouts, Normal and Minimal.
The layout can be changed in Settings (?
or click the ⚙ icon).
In minimal layout, hidden panels can be revealed as dialogs using the
ctrl
based shortcuts (Navigator: ctrl+n
, Scope: ctrl+o
). To exit a
Scope or Navigator dialog press the esc
key.
More than welcome
See devnotes
Any questions, twitter: @davidmarkclem
MIT