본문 바로가기

기타

[vscode] vscode 파이썬 디버깅

반응형

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