본문으로 건너뛰기
0%

VS Code를 사용한 원격 디버깅

서문

이 포스트는 다음 포스트의 연속입니다:

Gdbserver를 사용한 원격 디버깅에서 설정한 환경을 계속 사용하겠습니다.

0. 환경 설정

Desktop View

위 이미지는 두 개의 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을 검색하여 실행합니다.

Desktop View

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

Desktop View

2. 실행 중인 애플리케이션 디버깅

launch.json에 몇 가지를 수정하고 추가하면 TARGET에서 실행 중인 애플리케이션을 쉽게 디버깅할 수 있습니다.

  • prelaunchTask 제거
    • ELF가 이미 HOST에서 빌드되어 TARGET으로 전송되었다고 가정합니다
  • miDebuggerServerAddress 추가 → TARGET의 gdbserver IP 주소와 포트 입력
    • 예) “miDebuggerServerAddress”: “172.25.125.3:2001”

이제 소스 코드로 이동하고 왼쪽 바에서 Run Extension을 클릭합니다.

Desktop View

왼쪽 상단의 재생 버튼을 클릭하여 디버깅 세션을 설정합니다.

  • GDB Server가 리스닝 상태여야 합니다

    Desktop View

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

    Desktop View

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

      Desktop View

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

댓글 남기기

여러분의 생각을 들려주세요

댓글

GitHub 계정으로 로그인하여 댓글을 남겨보세요. 건설적인 의견과 질문을 환영합니다!

댓글을 불러오는 중...