I've installed node-inspector just to find out that it doesn't support breakpoints :| What's the point in it at all, bearing in mind that on big part node code is asynchronous and you simply cannot follow it step by step?..
I'm definitely missing a point here...
Anyway to debug node code with breakpoints and everything?
-
Possible duplicate: stackoverflow.com/questions/1911015/…beny23– beny232012年07月23日 11:02:15 +00:00Commented Jul 23, 2012 at 11:02
-
I came here from there - breakpoints do not work in node-inspector and there is no answer to my question. Is there?jayarjo– jayarjo2012年07月23日 11:15:12 +00:00Commented Jul 23, 2012 at 11:15
-
1It does support breakpoints. I just doesn't 'remember' them when you referesh the inspector page.JP Richardson– JP Richardson2012年07月23日 14:45:42 +00:00Commented Jul 23, 2012 at 14:45
-
Possible duplicate of How do I debug Node.js applications?Ciro Santilli OurBigBook.com– Ciro Santilli OurBigBook.com2019年08月04日 14:01:52 +00:00Commented Aug 4, 2019 at 14:01
-
Debugging node.js applications has become much better these days. So this question and answers are probably not even actual anymore.jayarjo– jayarjo2019年08月04日 16:25:00 +00:00Commented Aug 4, 2019 at 16:25
5 Answers 5
yupp, I've successfully used node-inspector. If you want permanent breakpoints, simply insert debugger; in your code. See http://nodejs.org/api/debugger.html.
Making node wait until a debugger is attached, using node --inspect-brk script.js (previously node --debug-brk script.js), can also be very helpful.
3 Comments
--debug-brk is deprecated. Use --inspect-brk instead.(For Node 8 and later)
Node.js has a built-in debugger. Normally you can turn on the debugger in two ways:
Start your Node.js app or script with the
--inspector--inspect-brkswitch. For example:$ node.js --inspect index.js
(Note: --inspect-brk breaks before user code starts)
If for some reason you cannot start your Node.js app or script with the
--inspectswitch, you can still instruct the Node.js process to start listening for debugging messages by signalling it with SIGUSR1 (on Linux and OS X). For Node 8 and later it will activate the Inspector API, same as the --inspect switch$ kill -sigusr1 23485
(Note: you need to replace 23485 with your own Node.js process ID)
With the debugger turned on, you can open the Google Chrome browser, and type in the address bar chrome://inspect
Then you should see an entry listed under "Remote Target". Go ahead and click "inspect".
Now you can set breakpoints and start debugging your code.
Reference:
- https://nodejs.org/en/docs/guides/debugging-getting-started/
- Related issue on stackoverflow: Chrome Devtools Dedicated Node.js Inspector not stopping at breakpoints
2 Comments
node inspect instead as explained at: stackoverflow.com/a/55429798/895245 as of v10.15.1.To debug a Node.js application, one can use the debugging built-in method:
(1) Insert debugger; statement where you want to insert a break point
(2) Run the file with command $ node inspect <file name>
(3) Use a key for example, c to continue to next break point
You can even debug values associated to variables at that break point by typing repl. For more information, Please check the official guide.
2 Comments
v10.15.1.setBreakpoint or sb to set up a breakpoint, eg setBreakpoint('script.js', 1) (nodejs.org/api/debugger.html)Have you tried using nodemon library? it can be found here.
For development purposes you could start the app running nodemon. I have this script:
"dev": "nodemon --inspect src/index.js"
It will break any time a debugger statement is reached in the code. To open the console where you can see the server code, open the console in chrome and click on the nodejs icon:enter image description here
It also helps you refreshing the server every time you save any file on the server.
Let me know if it works!
Comments
Just to elaborate a bit here:
Set a debugger wherever you want the breakpoints to be and then run your code with node debug script.js/index.js
When the debugger stops at you breakpoint, you will need to repl to inspect the variables.
2 Comments
watch('count') watchers api will print the value when debugger stops in that function.Explore related questions
See similar questions with these tags.