2017-05-18 3 views
7

최신 IntelliJ Ultimate EAP 및 최신 Gogland가 있으며 문제는 MacOS Sierra에서 발생합니다. 디버깅 응용 프로그램이 중단 점에서 멈추지 않습니다.

나는 Go Application에 대한 디버그 프로필을 작성하여 이동 응용 프로그램을 디버깅하기 위해 노력하고있어 및 Run Kind는 현재 프로젝트의 패키지 이름을 포함 Package로 구성되어 있습니다.

이하 Go tool arguments-ldflags="-linkmode internal"이 구성되었습니다.

일부 중단 점이있는 동안 디버그 세션을 시작할 때 실행되지만 중단 점에서는 중지되지 않습니다.

무엇이 누락 되었습니까?

감사

갱신

나는 다음과 같은 프로젝트에 문제를 재현 할 수 있었다 확인 :

test1.go가 포함

package main 

const Numb uint64 = 5 

test2.go에는 다음이 포함

package main 

import "fmt" 

func main() { 
    fmt.Println(Numb); 
} 
내가 test2.go 6 호선 (main 함수 코드의 처음이자 유일한 라인)에 중단 점을 선택할 때

Run kind: package 
Package: github.com/kfirufk/test 
Working Directory: /usr/local/Cellar/go/1.8.1/src/github.com/kfirufk/test/ 

내가 디버그를 시작

나는 다음과 같은 매개 변수와 Go Application 실행/디버그 구성을 작성 세션, 나는 다음 출력을 참조하십시오 :

"/Users/ufk/Library/Application Support/IntelliJIdea2017.1/Go/lib/dlv/mac/dlv" --listen=localhost:53111 --headless=true exec /private/var/folders/cn/n7rwdd_95_l54s3zdnbxvw040000gn/T/Unnamedgo -- 
GOROOT=/usr/local/Cellar/go/1.8.1/libexec 
GOPATH=/usr/local/opt/go 
/usr/local/Cellar/go/1.8.1/libexec/bin/go build -o /private/var/folders/cn/n7rwdd_95_l54s3zdnbxvw040000gn/T/Unnamedgo -gcflags "-N -l" github.com/kfirufk/test 
API server listening at: 127.0.0.1:53111 
5 

나는 프로그램의 출력을 제대로 얻지 만 Intellij는 필요한 중단 점에서 멈추지 않았습니다.

MacOS Sierra 10.12.4에서 Go Lang Plugin 0.171.1928로 Intellij 2017.1.3에서 문제가 재현됩니다. 다음

/Users/ufk/Library/Application\ Support/IntelliJIdea2017.1/intellij-go/lib/dlv/mac/dlv exec ./test 

I 실행 : 인 IntelliJ의 탐구와 재생하려고

갱신

는 무슨 일이 일어나고 있는지 더 잘 이해하려고하는

(dlv) step 

을 수신 :

Command failed: could not find FDE for PC 0x78bc000 

내가 어떻게 파고를 사용하는지 이해하지 못했거나 여기 뭔가가 제대로 작동하지 않습니까?

디버거가 탐구의 두 버전으로 제대로 작동 continue

엡가 .. (자작에서 설치 및 인 IntelliJ 버전) 업데이트. 하지만 여전히 intellij는 중단 점에서 멈추지 않고 똑같이 작동합니다. 변수를 인쇄 할 때 줄에 test2.go에 중단 점을 만듭니다.

어떤 아이디어가 있습니까?

+0

실행 구성에서 ldflags를 비활성화하고 다시 시도하십시오. – dlsniper

+0

@dlsniper - 결과가 동일합니다 – ufk

+1

어떤 버전의 IDE/Go 플러그인이 있습니까? 디버깅하려는 앱에 대해 자세히 설명해 주시겠습니까? CGO가 있습니까? 심볼릭 링크를 사용하고 있습니까? 이 앱을 오픈 소스에서 복제 할 수 있습니까? 감사합니다 – dlsniper

답변

0

좋아 .. 나는 마침내 그것을 얻었다. GOROOT 구조와 GOPATH 구조가 섞여서 GOPATH 대신 GOROOT에 프로젝트를 배치했습니다.

export GOPATH=$HOME/golang 
export GOROOT=/usr/local/opt/go/libexec 
export PATH=$PATH:$GOPATH/bin 
export PATH=$PATH:$GOROOT/bin 

다음 내가 ~/golang/src/github.com/kfirufk/windy-server

에서 내 프로젝트를 배치 :

내가 문제를 내가 완전히 삭제

를 해결 brew uninstall --force go 함께 가야했던 것입니다, 다음 환경 변수로 가서 다시 설치

그리고 마침내 제대로 응용 프로그램을 디버깅 할 수있었습니다.

나를 도와 주셔서 감사합니다. :)