GoLand 디버거가 Go 프로그램에 연결되어 있는지 어떻게 알 수 있나요?

Mary-Kate Olsen
풀어 주다: 2024-11-25 13:30:12
원래의
948명이 탐색했습니다.

How Can I Detect if the GoLand Debugger is Attached to a Go Program?

실행 중인 프로그램에서 GoLand 디버거 존재 감지

Go에서는 System.Diagnostics.Debugger.IsAttached를 사용하여 디버거 존재를 감지할 수 있는 C#과 달리 직접적인 동등물은 없습니다. 이 문제를 해결하기 위한 한 가지 접근 방식은 delve 디버거로 빌드 태그를 활용하는 것입니다.

빌드 태그 사용

두 개 생성 파일:

  • isdelve/delve.go:
// +build delve

package isdelve

const Enabled = true
로그인 후 복사
  • isdelve/nodelve.go:
// +build !delve

package isdelve

const Enabled = false
로그인 후 복사

인 기본 프로그램에서 isdelve 패키지를 가져오고 활성화된 상수를 확인하세요.

import "isdelve"

func main() {
    fmt.Println("delve", isdelve.Enabled)
}
로그인 후 복사

Enabling Build Tags in GoLand

GoLand에서 'Run/Debug Configurations'로 이동한 다음 'Go'에서 도구 인수', 추가:

-tags=delve
로그인 후 복사

이제 GoLand에서 프로그램을 실행하면 delve 빌드 태그가 활성화되어 isdelve.Enabled 상수에 액세스합니다.

delve의 set 명령 사용

또는 디버거를 시작한 후 delve의 set 명령을 사용하여 변수를 설정합니다.

dlv debug a.go
(dlv) set debug.enabled true
로그인 후 복사

위 내용은 GoLand 디버거가 Go 프로그램에 연결되어 있는지 어떻게 알 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿