디버깅
Visual Studio Code의 주요 기능 중 하나는 훌륭한 디버깅 지원입니다. VS Code의 내장 디버거는 편집, 컴파일 및 디버그 루프를 가속화합니다.
사용자 인터페이스
다음 다이어그램은 디버깅 사용자 인터페이스의 주요 환경 설정 요소를 보여줍니다:
- Run and Debug 화면: 실행, 디버깅 및 디버그 환경 설정 설정 관리를 위한 모든 정보를 표시합니다.
- Debug 도구 모음: 가장 일반적인 디버깅 작업을 위한 버튼이 있습니다.
- Debug 콘솔: 디버거에서 실행 중인 코드의 출력을 보고 상호작용할 수 있습니다.
- Debug 사이드바: 디버그 세션 중에 호출 스택, 중단점, 변수 및 감시 변수를 상호작용할 수 있습니다.
디버거 확장
VS Code는 Node.js 런타임에 대한 내장 디버깅 지원을 제공하며 JavaScript, TypeScript 또는 JavaScript로 변환되는 다른 언어를 디버깅할 수 있습니다.
다른 언어 및 런타임(PHP, Ruby, Go, C#, Python, C++, PowerShell 등)을 디버깅하려면 VS Code 마 켓플레이스에서 Debugger
확장을 찾거나 상단의 실행 메뉴에서 Install Additional Debuggers를 선택하세요.
아래는 디버깅 지원을 포함하는 몇 가지 인기 있는 확장입니다:
위에 표시된 확장은 동적으로 쿼리됩니다. 위의 확장 타일을 선택하여 설명과 리뷰를 읽고 어떤 확장이 가장 적합한지 결정하세요.
디버깅 시작
다음 문서는 내장된 Node.js 디버거를 기반으로 하지만 대부분의 개념과 기능은 다른 디버거에도 적용됩니다.
디버깅에 대해 읽기 전에 샘플 Node.js 애플리케이션을 먼저 만드는 것이 도움이 됩니다. Node.js 단계별 설명을 따라 Node.js를 설치하고 간단한 "Hello World" JavaScript 애플리케이션(app.js
)을 만드세요. 간단한 애플리케이션을 설정한 후 이 페이지는 VS Code 디버깅 기능을 안내합니다.
실행 및 디버그 보기
Run and Debug 보기를 열려면 VS Code의 Activity Bar에서 Run and Debug 아이콘을 선택하세요. 키보드 단축키 Ctrl+Shift+D
를 사용할 수도 있습니다.
Run and Debug 보기에는 실행 및 디버깅과 관련된 모든 정보가 표시되며 상단에는 디버깅 명령 및 환경 설정 설정이 있습니다.
실행 및 디버깅이 아직 환경 설정되지 않은 경우(launch.json
이 생성되지 않은 경우), VS Code는 실행 시작 보기를 표시합니다.
실행 메뉴
상단의 Run 메뉴에는 가장 일반적인 실행 및 디버그 명령이 있습니다:
Launch 환경 설 정
VS Code에서 간단한 앱을 실행하거나 디버깅하려면 디버그 시작 보기에서 Run and Debug를 선택하거나 F5
를 누르면 VS Code가 현재 활성 파일을 실행하려고 시도합니다.
그러나 대부분의 디버깅 시나리오에서는 디버깅 설정 세부 정보를 환경 설정하고 저장할 수 있는 실행 환경 설정 파일을 만드는 것이 유익합니다. VS Code는 워크스페이스(프로젝트 루트 폴더) 또는 사용자 설정 또는 워크스페이스 설정에 있는 .vscode
폴더에 launch.json
파일에 디버깅 환경 설정 정보를 저장합니다.
launch.json
파일을 만들려면 실행 시작 보기에서 create a launch.json file을 선택하세요.
VS Code는 디버그 환경을 자동으로 감지하려고 시도하지만 실패하면 수동으로 선택해야 합니다:
다음은 Node.js 디버깅을 위해 생성된 Launch 환경 설정입니다:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"skipFiles": ["<node_internals>/**"],
"program": "${workspaceFolder}\\app.js"
}
]
}
파일 탐색기 보기로 돌아가면(Ctrl+Shift+E
), VS Code가 .vscode
폴더를 생성하고 워크스페이스에 launch.json
파일을 추가한 것을 볼 수 있습니다.
VS Code에서 폴더를 열지 않고도 간단한 애플리케이션을 디버깅할 수 있지만, Launch 환경 설정을 관리하고 고급 디버깅을 설정할 수는 없습니다. 폴더를 열지 않은 경우 VS Code 상태 표시줄은 보라색입니다.
Launch 환경 설정에서 사용할 수 있는 속성은 디버거마다 다릅니다. 특정 디버거에 대한 속성을 찾으려면 IntelliSense 제안(Ctrl+Space
)을 사용하세요. 모든 속성에 대해 호버 도움말도 사용할 수 있습니다.
한 디버거에서 사용할 수 있는 속성이 다른 디버거에서도 자동으로 작동한다고 가정하지 마세요. Launch 환경 설정에 빨간 물결선이 표시되면 문제를 확인하고 디버그 세션을 시작하기 전에 수정하세요.
자동으로 생성된 모든 값을 검토하고 프로젝트 및 디버깅 환경에 적합한지 확인하세요.
Launch 대 Attach 환경 설정
VS Code에는 두 가지 핵심 디버깅 모드, Run 및 Attach이 있으며, 이는 두 가지 다른 워크플로우와 개발자 세그먼트를 처리합니다. 워크플로우에 따라 어떤 유형의 환경 설정이 프로젝트에 적합한지 혼란스러울 수 있습니다.
브라우저 개발자 도구 배경에서 오신 경우, 브라 우저 인스턴스가 이미 열려 있기 때문에 "도구에서 실행"하는 것에 익숙하지 않을 수 있습니다. DevTools를 열면 단순히 DevTools를 열린 브라우저 탭에 Attach하는 것입니다. 반면, 서버 또는 데스크탑 배경에서 오신 경우, 편집기가 프로세스를 Run하고 편집기가 새로 실행된 프로세스에 디버거를 자동으로 연결하는 것이 매우 일반적입니다.
Run 환경 설정과 Attach 환경 설정의 차이를 설명하는 가장 좋은 방법은 Run 환경 설정을 VS Code가 연결하기 전에 디버그 모드에서 앱을 시작하는 방법에 대한 레시피로 생각하는 것이고, Attach 환경 설정은 VS Code의 디버거를 이미 실행 중인 앱 또는 프로세스에 연결하는 방법에 대한 레시피로 생각하는 것입니다.
VS Code 디버거는 일반적으로 디버그 모드에서 프로그램을 실행하거나 디버그 모드에서 이미 실행 중인 프로그램에 연결하는 것을 지원합니다. 요청(attach
또는 launch
)에 따라 다른 속성이 필요하며, VS Code의 launch.json
유효성 검사 및 제안이 도움이 될 것입니다.
새 환경 설정 추가
기존 launch.json
에 새 환경 설정을 추가하려면 다음 기술 중 하나를 사용하세요:
- 환경 설정 배열 내에 커서가 있는 경우 IntelliSense를 사용하세요.
- Add Configuration 버튼을 눌러 배열 시작 부분에서 스니펫 IntelliSense를 호출하세요.
- Launch 메뉴에서 Add Configuration 옵션을 선택하세요.
VS Code는 여러 환경 설정을 동시에 시작하기 위한 복합 Launch 환경 설정도 지원합니다. 자세한 내용은 이 섹션을 읽으세요.
디버그 세션을 시작하려면 먼저 Run and Debug 보기의 Configuration dropdown에서 Launch Program이라는 환경 설정을 선택하세요. Launch 환경 설정을 설정한 후 F5
로 디버그 세션을 시작하세요.
또는 명령 팔레트(Ctrl+Shift+P
)를 통해 Debug: Select and Start Debugging을 필터링하거나 'debug '
를 입력하고 디버깅하려는 환경 설정을 선택하여 환경 설정을 실행할 수 있습니다.
디버깅 세션이 시작되면 Debug 콘솔 패널이 표시되고 디버깅 출력이 표시되며 상태 표시줄의 색상이 변경됩니다(기본 색상 테마의 경우 주황색):
또한, 상태 표시줄에 활성 디버그 환경 설정을 표시하는 Debug 상태가 나타납니다. 디버그 상태를 선택하면 Run and Debug 보기를 열지 않고도 활성 Launch 환경 설정을 변경하고 디버깅을 시작할 수 있습니다.
디버그 작업
디버그 세션이 시작되면 창 상단에 Debug 도구 모음이 나타납니다.
작업 | 설명 |
---|---|
계속 / 일시 중지 F5 | 계속: 정상적인 프로그램/스크립트 실행을 재개합니다(다음 중단점까지). 일시 중지: 현재 줄에서 코드를 검사하고 한 줄씩 디버깅합니다. |
한 단계씩 실행 F10 | 다음 메서드를 단일 명령으로 실행하여 환경 설정 요소 단계를 검사하거나 따르지 않습니다. |
한 단계씩 들어가기 F11 | 다음 메서드에 들어가서 한 줄씩 실행을 따릅니다. |
한 단계씩 나가기 Shift+F11 | 메서드나 서브루틴 내부에 있을 때, 현재 메서드의 남은 줄을 단일 명령으로 완료하여 이전 실행 컨텍스트로 돌아갑니다. |