프로그래밍
VSCode에서 sudo로 디버깅하기
야라바
2024. 4. 9. 14:54
728x90
리눅스 환경에서의 프로그래밍 과정에서 편리한 통합 개발 환경의 존재는 프로그래머에게 날개를 달아주는 것이다. 맥 환경의 XCode나 윈도우 환경의 비주얼스튜디오가 바로 그런 존재이다. 물론 리눅스 환경에서도 NetBeans, CodeBlocks 등을 사용할 수 있지만 비주얼스튜디오 코드의 등장은 여러모로 반갑다. 필자의 경우 C/C++ 개발 과정에서 gdb와 연동하여 디버깅하는 과정은 나름 만족스러운 수준이다. 그런데 복병이 등장했다. 프로그램이 네트워크 인터페이스나 통신 포트와 같은 시스템 자원을 직접 접근하는 경우에는 sudo 권한이 필요한데 일반적인 상황으로는 sudo 권한을 받는 과정에서 실패하여 디버깅을 할 수 없었다. 여러 가지 해결책이 있으나 시스템 보안을 유지하며 자연스럽게 이러한 필요를 충족할 수 있는 방법이 있다.
우선 프로젝트 폴더의 launch.json에서 위의 그림처럼 miDebuggerPath 속성에 임의의 파일을 지정한다. 이 파일은 쉘 프로그램으로 gdb에 sudo 권한을 부여할 것이다.
pkexec /usr/bin/gdb "$@"
쉘프로그램의 내용은 위와 같이 간단하다. 파일을 작성하고 저장한 다은 "chmod 775 파일명"처럼 파일에 실행 권한을 부여하면 준비는 모두 끝난다.
디버깅을 시작하면 위의 그림처럼 인증창이 나오고 sudo 인증 과정을 거치면 정상적으로 디버깅이 가능해진다.
728x90