VS Code 는 .vscode/launch.json 파일에 저장되어있는 설정을 바탕으로 디버깅 기능을 수행할 수 있도록 되어있다. launch.json 에 다양한 디버깅 설정을 지정할 수 있는데, 파이썬 프로그램을 디버깅시의 설정과 사용법 등에 대해서 알아본다.
1. Python Debugger
기본적으로 파이썬을 디버깅하기 위해서는 launch.json 에 파이썬 디버깅을 위한 설정을 저장해야한다. 아무런 디버깅 설정이 되어있지 않은 vscode 에서 디버깅을 수행하려고 하면 어떤 설정으로 디버깅할 것인지 선택하도록 한다. 이때 Python file 을 선택하면 기본 python 설정 내용을 포함한 launch.json 파일이 열리게 된다. 이 파일에 설정을 통해서 파이썬을 디버깅할 수 있다.
기본 설정은 pyhton 명령어를 통해 프로그램을 수행하도록 되어있다. configurations 의 program에 “${file}” 로 되어있는데, 이 값을 "main.py" 와 같이 수정하면 main.py 파일을 python 명령어로 실행할 수 있다.
2. Configurations
- Command line debugging
debugger 는 command line 을 사용해서도 디버깅을 수행할 수 있다. debugger command line 의 문법은 다음과 같다.
python -m debugpy
--listen | --connect
[<host>:]<port>
[--wait-for-client]
[--configure-<name> <value>]...
[--log-to <path>] [--log-to-stderr]
<filename> | -m <module> | -c <code> | --pid <pid>
[<arg>]..
각 arguments 들이 의미하는 것은 다음과 같다.
- Configuration options
launch.json 파일에 디버깅 설정을 작성하여 디버깅에 사용할 수 있다. 다음은 launch.json 의 예시이다.
{
"configurations": [
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
},
{
"name": "Python: Current File (External Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "externalTerminal"
}
]
}
launch.json 에서 설정할 수 있는 옵션들은 다음과 같다.
이름 | 내용 |
name | vscode 에서 사용할 debug 설정의 이름. debug dropdown 에서 확인할 수 있다. |
type | debugger 를 사용할 타입. 파이썬 사용 시에는 ‘python’ 으로 설정 |
request | 디버깅 모드 - launch: ‘program’ 설정에 지정된 파일을 debugger 로 실행. - attach: 이미 실행중인 프로세스에 붙어서 실행. Remote debugging 예제를 참고. |
program | 디버깅의 entry module, 디버깅 시에 실행할 파이썬 파일을 의미한다. |
module | cli 에서 -m 옵션과 같이 디버깅 시에 해당 모듈에 부여할 이름을 지정한다. |
python | 디버깅시 사용할 python interpreter 의 경로를 지정한다. 만약 지정하지 않으면 default interpreter 가 사용된다. |
pythonArgs | python 옵션에서 지정한 interpreter 에게 넘겨줄 arguments 들을 선언한다. ex) “pythonArgs” : [”<arg1>”, “<arg2>”, ... ] |
args | 프로그램 실행시에 넘겨줄 arguments 들을 선언한다. ex) “args”: [”—port”, “8080”, “—loglevel”, “debug”] |
stopOnEntry | true로 설정시에 프로그램 첫번째 줄에서 디버깅이 멈춘다. false 로 설정하거나 따로 설정하지 않는 경우 첫번째 breakpoint 에서 멈춘다. |
cwd | 의존성 및 기타 파일을 찾기위해서 디버깅이 실행되는 디렉토리 위치 (current working directory) 를 지정한다. 생략하는 경우 vscode 에서 열려있는 디렉토리가 기본값으로 지정된다. |
env | 디버깅시에 사용할 추가적인 환경변수. string 값으로 입력된다. |
envFile | 환경변수들을 정의해놓은 파일의 위치. |
이외에도 다양한 옵션들을 설정할 수 있는데, 자세한 내용은 아래 reference 의 vscode 공식 문서 페이지를 통해 확인할 수 있다.
[reference]
'기타' 카테고리의 다른 글
[Web] html form 태그에서 PUT, DELETE 사용 (0) | 2022.02.20 |
---|---|
[Web] Rest URI 네이밍 (0) | 2022.02.18 |
[NATS] NATS 개념 정리 (0) | 2021.04.18 |
[MQ] Message Queue란? (0) | 2021.04.07 |
테스트 주도 개발 TDD와 BDD, DDD (0) | 2021.03.28 |