목차
Enable nodejs 디버깅
디버깅의 보안
nodejs 디버깅에 WebStorm 사용
디버깅을 위해 Chrome devTools 사용
디버깅을 위해 node-inspect 사용
기타 디버그 클라이언트
웹 프론트엔드 JS 튜토리얼 nodejs 디버깅을 활성화하는 방법은 무엇입니까? nodejs 프로그램을 디버깅하는 방법은 무엇입니까?

nodejs 디버깅을 활성화하는 방법은 무엇입니까? nodejs 프로그램을 디버깅하는 방법은 무엇입니까?

Jan 20, 2022 pm 07:55 PM
nodejs 디버그

nodejs 프로그램을 디버깅하는 방법은 무엇입니까? 다음 글에서는 nodejs 디버깅 방법을 소개하겠습니다. 도움이 되셨으면 좋겠습니다!

nodejs 디버깅을 활성화하는 방법은 무엇입니까? nodejs 프로그램을 디버깅하는 방법은 무엇입니까?

개발자는 애플리케이션을 개발하는 과정에서 개발 편의성과 버그 해결을 위해 프로그래밍 언어의 디버깅 기능에 의존해야 하는 경우가 많습니다. 일반적으로 이 작업을 완료하려면 강력한 IDE의 디버깅 기능을 사용해야 합니다. nodejs도 예외는 아닙니다.

오늘은 node 프로그램 디버깅 방법을 자세히 소개하겠습니다.

Enable nodejs 디버깅

아직도 우리가 전에 얘기했던 koa 프로그램을 기억하시나요? 이 기사에서는 nodejs 디버깅을 시작하기 위한 예로 간단한 koa 서버 프로그램을 사용합니다.

먼저 간단한 koa 서비스 app.js를 살펴보겠습니다.

const Koa = require('koa');
const app = module.exports = new Koa();

app.use(async function(ctx) {
  ctx.body = 'Hello World';
});

if (!module.parent) app.listen(3000);
로그인 후 복사

위 프로그램은 포트 3000을 열고 http 서비스를 설정합니다. 요청이 이루어질 때마다 hello World가 반환되며 이는 매우 간단합니다.

위 프로그램을 실행하려면 node app.js를 실행해야 합니다. 그러면 app.js가 실행되지만 디버깅은 활성화되지 않습니다.

디버그하는 방법?

--inspect 매개변수를 추가해야 합니다:

node --inspect app.js
로그인 후 복사
로그인 후 복사

위 코드는 nodejs의 디버깅 기능을 활성화합니다.

출력을 살펴보겠습니다.

Debugger listening on ws://127.0.0.1:9229/88c23ae3-9081-41cd-98b0-d0f7ebceab5a
For help, see: https://nodejs.org/en/docs/inspector
로그인 후 복사

결과는 두 가지를 말해줍니다. 첫 번째는 디버거가 수신하는 포트입니다. 기본적으로 127.0.0.1의 포트 9229가 열립니다. 그리고 차별화를 위해 고유한 UUID를 할당했습니다.

두 번째로 nodejs에서 사용하는 디버거가 Inspector라는 점을 알려드립니다.

Inspector는 nodejs 8 이후에 도입되었습니다. nodejs 7 이전이라면 레거시 디버거가 사용됩니다.

디버깅의 보안

디버거가 nodejs 실행 환경에 연결되어 있으면 악의적인 공격자가 있으면 악의적인 공격자가 nodejs 환경에서 임의의 코드를 실행할 수 있습니다. 이는 우리 프로그램에 큰 보안 위험을 가져올 것입니다.

그래서 우리는 디버깅의 안전에 주의를 기울여야 합니다. 일반적으로 원격 디버깅은 권장되지 않습니다.

기본적으로 --inspect는 127.0.0.1에 바인딩되어 있으며 로컬 프로그램만 액세스할 수 있도록 허용합니다. 그리고 로컬로 실행되는 모든 프로그램에는 프로그램을 디버깅할 수 있는 권한이 있습니다.

디버그 프로그램을 외부 프로그램에 노출하려면 원격 시스템이 원격 디버깅을 수행할 수 있도록 시스템의 외부 IP 주소 또는 0.0.0.0(모든 주소, 제한 없음을 의미)을 지정할 수 있습니다.

안전한 원격 디버깅을 하려면 어떻게 해야 할까요?

먼저 로컬 디버깅을 활성화해야 합니다.

node --inspect app.js
로그인 후 복사
로그인 후 복사

그런 다음 SSH 터널을 구축하여 로컬 9221 포트를 원격 서버의 9229 포트에 매핑할 수 있습니다.

ssh -L 9221:localhost:9229 user@remote.example.com
로그인 후 복사

이런 방식으로 로컬 9221에 연결할 수 있습니다. 포트.원격 디버깅.

nodejs 디버깅에 WebStorm 사용

JetBrains에서 제작한 WebStorm은 nodejs 개발을 위한 강력한 도구라고 할 수 있습니다. WebStorm에는 자체 디버그 옵션이 있습니다. 이 옵션을 활성화하면 백그라운드에서 활성화됩니다. :

WebStorm 디버깅 사용은 IDEA를 사용하여 Java 프로그램을 디버깅하는 것과 유사하므로 여기서는 자세히 설명하지 않겠습니다.

디버깅을 위해 Chrome devTools 사용

디버깅을 위해 Chrome devTools를 사용하기 위한 전제 조건은 --inspect 모드를 켜는 것입니다.

chrome에 chrome://inspect를 입력하세요.

Chrome 검사 인터페이스를 볼 수 있습니다. 이미 검사가 활성화된 nodejs 프로그램이 로컬에 있다면 원격 대상에서 직접 볼 수 있습니다.

디버깅하려는 대상을 선택하고 검사를 클릭하여 Chrome devTools 디버깅 도구를 엽니다.

프로그램을 프로파일링하고 디버그할 수 있습니다.

여기서는 디버깅에 중점을 두고 있으므로 소스 열로 이동하여 디버깅하려는 프로그램의 소스 코드를 추가하세요.

중단점을 추가하여 디버깅을 시작하세요. Chrome의 웹 측에서 js를 디버깅하는 것과 동일합니다.

디버깅을 위해 node-inspect 사용

실제로 nodejs에는 CLI 디버깅 도구인 node-inspect라는 디버깅 도구가 내장되어 있습니다. 그것을 사용하는 방법을 보자.

저희는

node inspect app.js

< Debugger listening on ws://127.0.0.1:9229/f1c64736-47a1-42c9-9e9e-f2665073d3eb
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in app.js:1
> 1 const Koa = require(&#39;koa&#39;);
  2 const app = module.exports = new Koa();
  3 
debug>
로그인 후 복사

nodespect를 직접 사용하여 두 가지 작업을 수행합니다. 첫 번째는 node --inspect app.js를 실행하는 서브루틴을 생성하는 것이고, 두 번째는 기본 프로그램에서 CLI 디버깅 창을 실행하는 것입니다.

이 CLI 디버거는 몇 가지 매우 유용한 명령을 제공합니다.

1, Stepping

  • cont, c: 계속 실행
  • next, n: 다음 단계로 이동
  • step, s: Step in
  • out, o: 밖으로 나가기
  • pause: 실행 중인 코드를 일시 중지

2, Breakpoints

  • setBreakpoint(), sb(): 현재 줄에 중단점 설정
  • setBreakpoint(line), sb(line): 지정된 줄에 중단점 설정
  • setBreakpoint('fn()'), sb(… ) : 지정된 함수에 중단점을 설정합니다
  • setBreakpoint('script.js', 1), sb(...): 지정된 스크립트 파일에 중단점을 설정합니다
  • clearBreakpoint('script.js', 1), cb (...): 파일에서 중단점 지우기

3, Information

  • backtrace, bt: 현재 실행 프레임의 역추적 정보 인쇄
  • list(5): 전후 5줄 나열 소스 코드
  • watch(expr): 감시 표현식 추가
  • unwatch(expr): 감시 표현식 삭제
  • watchers: 모든 감시자 나열
  • repl: repl 표현식 열기
  • exec expr: 위를 통해 표현식 실행

명령을 사용하면 CLI에서 더 복잡한 디버깅 활동을 수행할 수 있습니다.

기타 디버그 클라이언트

위에서 언급한 것 외에도 vscode, Visual Studio, Eclipse IDE 등을 사용하여 nodejs를 디버그할 수도 있지만 여기서는 자세히 소개하지 않습니다.

관심 있는 친구들이 스스로 탐색할 수 있습니다.

노드 관련 지식을 더 보려면 nodejs 튜토리얼을 방문하세요! !

위 내용은 nodejs 디버깅을 활성화하는 방법은 무엇입니까? nodejs 프로그램을 디버깅하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. 크로스 플레이가 있습니까?
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C++ 함수 디버깅에 대한 자세한 설명: 다중 스레드 함수의 문제를 디버깅하는 방법은 무엇입니까? C++ 함수 디버깅에 대한 자세한 설명: 다중 스레드 함수의 문제를 디버깅하는 방법은 무엇입니까? May 02, 2024 pm 04:15 PM

C++ 다중 스레드 디버깅은 GDB를 사용할 수 있습니다. 1. 디버깅 정보 컴파일을 활성화합니다. 2. 중단점을 설정합니다. 3. 스레드를 보려면 infothread를 사용합니다. 4. 스레드를 전환하려면 next, stepi 및 locals를 사용합니다. 실제 사례 디버깅 교착 상태: 1. threadapplyallbt를 사용하여 스택을 인쇄합니다. 2. 스레드 상태를 확인합니다. 3. 기본 스레드를 한 단계씩 진행합니다. 4. 교착 상태를 해결하기 위해 액세스를 조정합니다.

LeakSanitizer를 사용하여 C++ 메모리 누수를 디버깅하는 방법은 무엇입니까? LeakSanitizer를 사용하여 C++ 메모리 누수를 디버깅하는 방법은 무엇입니까? Jun 02, 2024 pm 09:46 PM

LeakSanitizer를 사용하여 C++ 메모리 누수를 디버깅하는 방법은 무엇입니까? LeakSanitizer를 설치합니다. 컴파일 플래그를 통해 LeakSanitizer를 활성화합니다. 애플리케이션을 실행하고 LeakSanitizer 보고서를 분석합니다. 메모리 할당 유형과 할당 위치를 식별합니다. 메모리 누수를 수정하고 동적으로 할당된 모든 메모리가 해제되었는지 확인하세요.

golang 함수 디버깅 및 분석 바로가기 golang 함수 디버깅 및 분석 바로가기 May 06, 2024 pm 10:42 PM

이 기사에서는 실행을 일시 중지하고, 변수를 확인하고, 중단점을 설정하는 데 사용되는 내장 디버거 dlv를 포함하여 Go 기능 디버깅 및 분석을 위한 바로 가기를 소개합니다. 로깅 - 로그 패키지를 사용하여 메시지를 기록하고 디버깅 중에 확인합니다. 성능 분석 도구 pprof는 호출 그래프를 생성하고 성능을 분석하며, gotoolpprof를 사용하여 데이터를 분석합니다. 실제 사례: pprof를 통해 메모리 누수를 분석하고 호출 그래프를 생성하여 누수를 일으키는 함수를 표시합니다.

Java 람다 표현식에서 효율적인 디버깅을 수행하는 방법은 무엇입니까? Java 람다 표현식에서 효율적인 디버깅을 수행하는 방법은 무엇입니까? Apr 24, 2024 pm 12:03 PM

효율적으로 Lambda 표현식을 디버그합니다. IntelliJ IDEA 디버거: 변수 선언이나 메서드에 중단점을 설정하고, 내부 변수와 상태를 검사하고, 실제 구현 클래스를 확인합니다. Java9+JVMTI: 런타임 JVM에 연결하여 식별자를 얻고, 바이트코드를 검사하고, 중단점을 설정하고, 실행 중에 변수와 상태를 모니터링합니다.

PHP 비동기 코드를 디버깅하는 방법 PHP 비동기 코드를 디버깅하는 방법 May 31, 2024 am 09:08 AM

PHP 비동기 코드 디버깅을 위한 도구는 다음과 같습니다. Psalm: 잠재적인 오류를 찾는 정적 분석 도구입니다. ParallelLint: 비동기 코드를 검사하고 권장 사항을 제공하는 도구입니다. Xdebug: 세션을 활성화하고 코드를 단계별로 실행하여 PHP 애플리케이션을 디버깅하기 위한 확장입니다. 다른 팁으로는 로깅 사용, 어설션, 로컬에서 코드 실행, 단위 테스트 작성 등이 있습니다.

Java 동시 프로그래밍에서 동시성 테스트 및 디버깅을 수행하는 방법은 무엇입니까? Java 동시 프로그래밍에서 동시성 테스트 및 디버깅을 수행하는 방법은 무엇입니까? May 09, 2024 am 09:33 AM

동시성 테스트 및 디버깅 Java 동시 프로그래밍의 동시성 테스트 및 디버깅은 매우 중요하며 다음 기술을 사용할 수 있습니다. 동시성 테스트: 단위 테스트: 단일 동시 작업을 격리하고 테스트합니다. 통합 테스트: 여러 동시 작업 간의 상호 작용을 테스트합니다. 부하 테스트: 부하가 심한 상황에서 애플리케이션의 성능과 확장성을 평가합니다. 동시성 디버깅: 중단점: 스레드 실행을 일시 중지하고 변수를 검사하거나 코드를 실행합니다. 로깅: 스레드 이벤트 및 상태를 기록합니다. 스택 추적: 예외의 원인을 식별합니다. 시각화 도구: 스레드 활동 및 리소스 사용량을 모니터링합니다.

Java 함수의 재귀 호출을 위한 디버깅 기술은 무엇입니까? Java 함수의 재귀 호출을 위한 디버깅 기술은 무엇입니까? May 05, 2024 am 10:48 AM

재귀 함수 디버깅에는 다음과 같은 기술이 있습니다. 스택 추적 확인 디버그 포인트 설정 기본 케이스가 올바르게 구현되었는지 확인하는 재귀 호출 횟수를 계산하는 재귀 스택 시각화

PHP 디버깅 오류: 일반적인 실수에 대한 가이드 PHP 디버깅 오류: 일반적인 실수에 대한 가이드 Jun 05, 2024 pm 03:18 PM

일반적인 PHP 디버깅 오류는 다음과 같습니다. 구문 오류: 코드 구문을 확인하여 오류가 없는지 확인하세요. 정의되지 않은 변수: 변수를 사용하기 전에 변수가 초기화되고 값이 할당되었는지 확인하세요. 세미콜론 누락: 모든 코드 블록에 세미콜론을 추가합니다. 함수가 정의되지 않았습니다. 함수 이름의 철자가 올바른지 확인하고 올바른 파일이나 PHP 확장이 로드되었는지 확인하세요.

See all articles