
학원에서 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.
학원 PC라서 WSL2나 Hyper-V가 설치된 환경에서 Windows가 부팅할 때 포트 범위를 자동으로 예약하는데, 네트워크 설정이나 설치된 프로그램에 따라 예약 범위가 달라진다고 합니다.
확인 방법
netsh interface ipv4 show excludedportrange protocol=tcp

WSL2 / Hyper-V가 부팅 시 포트 범위를 자동 예약해서 발생
CubeIDE 디버그 포트를 예약 범위 밖으로 변경해주었습니다. (예: 61300)

포트 변경 후에도 아래 에러가 발생했습니다.
target remote localhost:61300
localhost:61300: Connection timed out.
Run Configurations → Debugger 탭에서
포트 번호를 61300으로 수정하면서, "Connect to remote GDB server" 로 선택을 했습니다.
→ 이 옵션은 GDB 서버가 외부에서 이미 실행 중일 때 사용하는 것으로, 서버를 자동으로 띄워주지 않는다고 합니다.

"Autostart local GDB server" 로 변경
.elf 파일을 보드에 다운로드netsh 명령으로 예약 포트 범위 확인