Program Tip

node-inspector로 node.js 디버깅

programtip 2020. 11. 7. 10:24
반응형

node-inspector로 node.js 디버깅


node-inspector를 사용하여 nodejs 앱을 디버그하려고합니다. 그러나 Google 크롬은 코드를 표시하지 않습니다.

다음을 사용하고 있습니다.

Node.js : v0.10.26

익스프레스 : 4.0.0

노드 검사기 : v0.7.3

Google Chrome 버전 : 34.0.1847.131

이것이 제가 디버거를 시작하기 위해하는 일입니다 ..

$ node-inspector
Node Inspector v0.7.3
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

다른 콘솔에서

$ node --debug app.js 
debugger listening on port 5858
$

그런 다음 Chrome을 시작하고

http://127.0.0.1:8080/debug?port=5858

노드 검사기가 열리지 만 코드없이 모든 창이 비어 있습니다.

'포트 3000에서 수신하는 Express 서버'가 표시되지 않습니다.

노드 관리자 별로 모두 시도 했지만 노드에 연결 하지 못했지만 운이 없습니다.

내가 놓친 것을 해결할 수 없었습니다. Google 크롬에서 Node.js 앱을 디버깅 할 수 있도록 제안 사항이 있으면 좋을 것입니다.


node --debug-brk app.js대신 실행하십시오 --debug. 노드 검사기가 노드 프로세스에 연결되기 전에 애플리케이션이 일시 중지되지 않을 수 있습니다. 를 사용 --debug-brk하면 노드가 앱의 첫 번째 줄에서 중단되고 디버거가 프로세스에 연결될 때까지 기다립니다. 노드 검사자 웹 인터페이스를로드하면 노드 검사자가 노드 프로세스에 연결됩니다. 이것이 쿼리 문자열 (localhost : 8080 / debug? port = 5858)에 노드 디버그 포트를 포함하는 이유입니다. 노드 검사자에게 도달하여 연결해야하는 포트를 알려줍니다.

다음은 노드 검사기의 전체 설치 및 실행을 보여주는 애니메이션 gif입니다.

gif에서는 --debug시작시 바로 실행되는 코드를 디버깅하지 않기 때문에 플래그를 사용합니다 . 페이지가 요청 될 때만 실행되는 요청 처리기 내부에서 디버깅 중입니다. 따라서 페이지를 새로 고치면 노드 검사기가 해당 줄에서 중단됩니다.

나는 또한 얼마 전에 15 분 YouTube 튜토리얼을 작성했습니다.

http://youtu.be/03qGA-GJXjI

도움이 되었기를 바랍니다.


기본적으로 node-inspector는 디버그 창을 시작하기 전에 모든 코드를 미리로드하려고합니다. 나는 인스턴스를 가지고 있었고 노드 검사기는이 사전로드로 인해 영원히 중단됩니다. 운 좋게도 최신 버전에는 사전로드를 중지하는 옵션이 있으므로 검사기가 더 빨리로드됩니다.

시험 node-inspector --no-preload


표준 원격 디버깅은 노드 6.5에서 완전히 중단됩니다. 그러나 새로운 내부 노드 기능으로 대체되었습니다.

$ node --inspect --debug-brk build/server/server.js
Debugger listening on port 9229.
Warning: This is an experimental feature and could change at any time.
To start debugging, open the following URL in Chrome:
    chrome-devtools://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true&v8only=true&ws=localhost:9229/node
Debugger attached.

- 여기를 참조하십시오 http://arveknudsen.com/?p=346%3Fpage_id%3D346&print=pdf - 대한 추가 정보를 원하시면


--debug-brk 이제 사용되지 않습니다

시도한 node --inspect-brk <your starting file name>다음 크롬으로 이동하여 url을 입력 chrome://inspect하고를 클릭 Open dedicated DevTools for Node하면 디버거가 시작되며 노드 검사기가 필요하지 않습니다.


여기에 이미지 설명 입력

Node Inspector의 "Sources"탭 왼쪽에는 "삼각형이있는 상자"가 있습니다. 강조 표시는 "Show Navigator"입니다. (위 그림 참조). 디버그 할 파일을 찾아서 아직 실행하지 않은 코드에 중단 점을 둡니다.

또한 시작 노드에서 실행되는 코드를 디버그하려면 --debug-brk시작할 때 옵션 을 사용해야합니다 . 그런 다음 Node Inspector에서 앱을 시작해야합니다 ( F8모두 실행). 웹 브라우저 시작과 같은 모든 초기화 코드를 디버그하려면이 옵션이 필요합니다.


node-debug --no-preload app.js

이것은 나를 위해 일하는 것입니다. 에 Accoriding :

내 스크립트가 너무 빨리 실행되어 디버거를 연결할 수 없습니다.

디버깅 된 프로세스는 --debug-brk로 시작해야합니다. 이렇게하면 스크립트가 첫 번째 줄에서 일시 중지됩니다.

참고 : node-debug는 기본적으로이 옵션을 추가합니다.

참고 URL : https://stackoverflow.com/questions/23340968/debugging-node-js-with-node-inspector

반응형