저는 Visual Studio Code를 golang 기반 애플리케이션의 IDE로 사용하고 있습니다. 애플리케이션은 Linux 대상에서 실행됩니다. 이 크로스 컴파일된 바이너리에 VSC 디버거를 연결하고 싶습니다. 바이너리는 arm 또는 x86 플랫폼용으로 컴파일될 수 있습니다. 나는 launch.json 파일이 이것을 달성할 수 있다는 것을 알고 있지만 그것을 사용한 적이 없습니다. 도와주세요.
디버거 dlv는 Go 코드를 디버그하는 데 사용됩니다. Delve 또는 dlv에는 64비트 아키텍처용 바이너리에만 추가할 수 있다는 제한이 있습니다. 그래서 64비트 AMD 아키텍처용 코드를 컴파일하고 이를 Linux 상자에서 실행했습니다. 다음으로 바이너리의 프로세스 ID를 가져와 드릴다운을 연결했습니다. 저는 Delve 서버에 포트 2345를 사용했습니다
dlv some_process_id 첨부 --listen=:2345 --headless --api-version=2 --log
Sudo 권한을 사용하여 Linux 대상에서 디버깅 수준을 활성화/변경해야 할 수도 있습니다.
cat 0 > /proc/sys/kernel/yama/ptrace_scope
다음 설정을 사용하여 Visual Studio Code IDE에서 launch.json을 만듭니다.
으아악Windows 컴퓨터에서 Visual Studio를 실행하고 있으므로 원격 Linux 대상에 대해 원격 모드를 선택합니다.
이제 Visual Studio Code에서 디버거를 실행하면 launch.json의 설정이 대상에서 dlv 디버거/서버를 찾아 연결합니다. 코드에 중단점을 배치하세요. 가급적 외부에서 실행될 수 있는 위치에 두세요. 예를 들어. 클라이언트 호출에서 트리거될 수 있는 서버 호출을 수락합니다.
위 내용은 Visual Studio Code IDE를 사용하여 디버깅하기 위해 크로스 컴파일된 Go 바이너리에 어떻게 연결하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!