VSCode
에서 C++
디버깅 환경설정을 하다가 오류를 만났다.
에러 메시지는
The value of miDebuggerPath is invalid.
당시 launch.json
의 miDebuggerPath
는 다음과 같았다.
...
"miDebuggerPath": "C:\\msys64\\mingw64\bin\\gdb.exe",
...
1. gdb.exe
실행파일이 위치한 경로가 잘못 입력되었는가?
-> 아니다. 명령프롬포트를 통해 실행 파일의 경로를 확인해보면 입력한 경로와 일치함을 알 수 있다.
C:\Users\ZIONHANN>where gdb
C:\msys64\mingw64\bin\gdb.exe
2. miDebuggerPath
의 탐색 방법이 내가 아는 것과 다른가?
-> YES. miDebuggerPath
는 시스템 변수에 등록된 경로를 최상위 경로로 하여 탐색한다.
내가 아는 것: 하드 드라이브를 root로 하는 경로
실제: 시스템 환경 변수를 root로 하는 경로
VSCode
공식 문서를 보자.
miDebuggerPath
The path to the debugger (such as gdb). When only the executable is specified, it will search the operating system's PATH variable for a debugger (GDB on Linux and Windows, LLDB on OS X).
시스템 변수에 등록된 경로 중 gdb.exe
실행 파일을 포함하는 path
는 C:\msys64\mingw64\bin
이고
해당 실행 파일은 bin
디렉토리의 하위에 있으므로 miDebuggerPath
에는 실행 파일만 써주면 되는 것이다!
만약 시스템 환경 변수에 mingw
를 path
로 등록하지 않은 경우 VSCode
는 MiDebuggerPath
에 등록된 경로로 Debugger를 탐색한다. 즉 이때는 하드드라이브부터 시작하는 절대 경로를 입력하는 것이 맞다.
launch.json
...
"miDebuggerPath": "gdb.exe",
...
https://code.visualstudio.com/docs/cpp/launch-json-reference#_midebuggerpath