2017-12-19 1 views
1

그것은 사용하는 디버거에서 실행중인 경우? 코드를 단계별로 실행하는 동안 장애인이되기를 원하는 몇 가지 제한 시간이 있습니다. 감사!GoLand 디버거가 프로그램에서 실행되고 있는지 어떻게 알 수 있습니까? 이동에 상응하는</p> <pre><code>System.Diagnostics.Debugger.IsAttached </code></pre> <p>있습니까 : C#을 실행중인 프로그램을 감지 할 수 있습니다에서

GoLand 디버거를 사용하고 있습니다.

+2

어떤 디버거를 사용하고 있습니까? – Adrian

+1

"이동에 상응하는 것이 있습니까?" 하나는 희망하지 않을 것입니다. 코드는 디버깅하는 동안 동일한 방식으로 동작해야합니다. 그렇지 않으면 제대로 디버깅되지 않습니다. – Flimzy

+0

감사합니다. @Adrian, 질문을 업데이트했습니다. –

답변

1

내가 아는 한, 당신이 설명한 방식으로 이것을 수행하는 내장 된 방법은 없습니다. 하지만 디버그 디버거가 실행 중임을 나타 내기 위해 빌드 태그를 사용하여 어느 정도 동일한 작업을 수행 할 수 있습니다. --build-flags 인수를 사용하여 dlv에 빌드 태그를 전달할 수 있습니다.를보고합니다 go run a.go 실행

package main 

import (
    "isdelve" 
    "fmt" 
) 

func main() { 
    fmt.Println("delve", isdelve.Enabled) 
} 

:

// +build !delve 

package isdelve 

const Enabled = false 

a.go : 나는 How can I check if the race detector is enabled at runtime?

isdelve/delve.go

// +build delve 

package isdelve 

const Enabled = true 

isdelve/nodelve.go를 설명 이것은 기본적으로 동일한 기술이다및 실행 중
dlv debug --build-flags='-tags=delve' a.godelve true으로보고됩니다.

GoLand 사용자 인터페이스의 어딘가에 해당 플래그를 전달해야합니다. 저는 GoLand에 익숙하지 않아서 그 부분에 대해 당신을 정말로 도울 수는 없습니다.


또는 수동으로 디버거를 시작한 후 변수를 설정하는 탐구의 set 명령을 사용할 수 있습니다.

관련 문제