프로그래밍 영역에서는 프로그램이 디버거의 감시 하에 실행되고 있는지 식별하는 것이 바람직한 경우가 많습니다. C#에서는 System.Diagnostics.Debugger.IsAttached를 사용하여 이를 쉽게 달성할 수 있습니다. 하지만 특히 GoLand 디버거를 사용할 때 Go는 어떻습니까?
디버그 플래그 탐색
Go에서는 디버거 실행을 식별하는 것이 C#만큼 간단하지 않습니다. 그러나 영리한 접근 방식은 빌드 태그를 활용하여 디버그 모드와 비디버그 모드를 구별하는 것입니다. dlv를 실행할 때 --build-flags 인수를 활용하면 특정 태그를 전달하여 디버거의 존재 여부를 측정할 수 있습니다.
Delve를 사용한 구현
이 접근 방식을 구현하려면 , 두 개의 Go 소스 파일을 만듭니다:
이러한 태그는 Enabled 상수가 isdelve 패키지에서 true(디버그 모드) 또는 false(비디버그 모드)입니다.
기본 Go 프로그램에서 isdelve 패키지를 실행하고 활성화된 상수를 확인하여 디버깅 상태를 확인하세요.
GoLand의 구성
GoLand에서 이 기능을 활성화하려면 '실행/디버그 구성'으로 이동하여 'Go 도구 인수'에 -tags=delve를 추가하세요. 이는 디버깅 플래그를 사용하여 빌드하도록 프로그램을 구성합니다.
외부 디버그 모드
GoLand가 아닌 환경에서는 dlv debug --build-flags='-tags=를 사용합니다. delve' a.go를 사용하여 지정된 태그로 디버거를 호출합니다.
추가 대안
대체 접근 방식은 디버거가 시작된 후 delve의 set 명령을 사용하여 수동으로 변수를 설정하는 것입니다. 이는 특정 시나리오에서 더 큰 유연성을 제공합니다.
위 내용은 Go 프로그램이 디버거(예: GoLand)에서 실행 중인지 어떻게 알 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!