VS Code를 사용한 원격 디버깅
서문
이 포스트는 다음 포스트의 연속입니다:
- Gdbserver를 사용한 원격 디버깅
- VS Code의 Remote-Development 기능에 대해서도 작성할 예정입니다 (추후 업로드 예정)
Gdbserver를 사용한 원격 디버깅에서 설정한 환경을 계속 사용하겠습니다.
0. 환경 설정

위 이미지는 두 개의 VS Code 인스턴스가 각각 Docker 컨테이너를 실행하고 있는 모습을 보여줍니다.
- Host IP: 172.25.125.2
- Target IP: 172.25.125.3
VS Code에는 기본적으로 내장된 Run Extension이 있습니다.
이 Run 기능은 launch.json이라는 특정 구성 파일을 사용하여 다양한 언어, 컴파일러, 디버거의 실행을 지원합니다.
1. launch.json 구성하기
F1을 눌러 명령 팔레트를 열고 launch.json을 검색하여 실행합니다.

launch.json 파일이 workspace/.vscode 내부에 생성됩니다.

2. 실행 중인 애플리케이션 디버깅
launch.json에 몇 가지를 수정하고 추가하면 TARGET에서 실행 중인 애플리케이션을 쉽게 디버깅할 수 있습니다.
- prelaunchTask 제거
- ELF가 이미 HOST에서 빌드되어 TARGET으로 전송되었다고 가정합니다
- miDebuggerServerAddress 추가 → TARGET의 gdbserver IP 주소와 포트 입력
- 예) “miDebuggerServerAddress”: “172.25.125.3:2001”
이제 소스 코드로 이동하고 왼쪽 바에서 Run Extension을 클릭합니다.

왼쪽 상단의 재생 버튼을 클릭하여 디버깅 세션을 설정합니다.
-
GDB Server가 리스닝 상태여야 합니다

-
세션이 연결되었지만 브레이크포인트를 설정하지 않으면 TARGET 애플리케이션이 계속 실행됩니다

-
줄 번호 왼쪽을 클릭하거나 F9 키를 사용하여 브레이크포인트를 토글합니다

-
브레이크포인트를 설정하면 TARGET 실행이 즉시 일시 정지되고, 해당 줄에서 변수와 호출 스택을 추적할 수 있습니다
-