STM32 CubeIDE GDB 서버 트러블슈팅

mommers·2026년 3월 18일

Trouble Shooting

목록 보기
1/1

학원에서 STM32F411 NUCLEO Board를 통해 실습을 진행하는 과정에서, 다른 사람들은 다 잘 되는데 제 자리만 문제가 있어서 트러블 슈팅 과정을 정리해보려 합니다.

일단 급하게 수업은 따라가야 했기 때문에, 미리 빌드되어있는 폴더를 그대로 받아서, Stm32CubeProgrammer 프로그램을 통해 ST-LINK에 .elf 파일을 넣어서 수업을 진행했습니다.

.elf 파일은 CubeIDE Workspace에서 프로젝트 폴더 > Debug 폴더 안에서 확인할 수 있습니다.


증상

디버그 실행 시 아래 에러가 발생했습니다.

Error in final launch sequence:

Failed to start GDB server
Failed to start GDB server
Error in initializing ST-LINK device.
Reason: (0) Unknown. Please check power and cabling to target.
STMicroelectronics ST-LINK GDB server. Version 7.12.0
Copyright (c) 2025, STMicroelectronics. All rights reserved.

Starting server with the following options:
        Persistent Mode            : Disabled
        Logging Level              : 1
        Listen Port Number         : 61234
        Status Refresh Delay       : 15s
        Verbose Mode               : Disabled
        SWD Debug                  : Enabled

Failed to bind to port 61235, error code -1: No error
Failure starting SWV server on TCP port: 61235
Failed to bind to port 61234, error code -1: No error
Failure starting GDB server: TCP port 61234 not available.
Shutting down...
Exit.

원인 1 - Windows 포트 예약 충돌

학원 PC라서 WSL2나 Hyper-V가 설치된 환경에서 Windows가 부팅할 때 포트 범위를 자동으로 예약하는데, 네트워크 설정이나 설치된 프로그램에 따라 예약 범위가 달라진다고 합니다.

확인 방법

netsh interface ipv4 show excludedportrange protocol=tcp

결과

WSL2 / Hyper-V가 부팅 시 포트 범위를 자동 예약해서 발생

해결

CubeIDE 디버그 포트를 예약 범위 밖으로 변경해주었습니다. (예: 61300)


원인 2 - GDB Connection Settings 잘못된 설정

증상

포트 변경 후에도 아래 에러가 발생했습니다.

target remote localhost:61300
localhost:61300: Connection timed out.

원인

Run Configurations → Debugger 탭에서

포트 번호를 61300으로 수정하면서, "Connect to remote GDB server" 로 선택을 했습니다.

→ 이 옵션은 GDB 서버가 외부에서 이미 실행 중일 때 사용하는 것으로, 서버를 자동으로 띄워주지 않는다고 합니다.

해결

"Autostart local GDB server" 로 변경


최종 해결 순서

  1. 급한불을 끄기 위해 CubeProgrammer 프로그램을 통해 .elf 파일을 보드에 다운로드
  2. netsh 명령으로 예약 포트 범위 확인
  3. 예약 범위 밖 포트로 변경 (61300 등)
  4. GDB Connection Settings → Autostart local GDB server 선택
  5. Apply → 디버그 실행
profile
임베디드 개발자가 되기 위해 공부중입니다!

0개의 댓글