2017-05-18 21 views
7

Mam najnowszy IntelliJ Ultimate EAP i najnowszy Gogland, a problem występuje zarówno w systemie MacOS Sierra.aplikacja do debugowania go nie zatrzymuje się w punktach przerwania

próbuję debugowania aplikacji mijają tworzenia profilu diagnostycznym dla Go Application i Run Kind jest skonfigurowany do Package, który zawiera nazwę pakietu bieżącego projektu.

pod Go tool arguments Mam skonfigurowany -ldflags="-linkmode internal".

Po uruchomieniu sesji debugowania z niektórymi przerwami działałaby, ale nie zatrzymałaby się w tych punktach przerwania.

czego mi brakuje?

dzięki

aktualizacja

ok udało mi się odtworzyć problem z następującym projektem:

test1.go zawiera:

package main 

const Numb uint64 = 5 

test2.go zawiera:

package main 

import "fmt" 

func main() { 
    fmt.Println(Numb); 
} 

stworzyłem Go Application run konfigurację/debug z następującymi parametrami:

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

kiedy wybrać przerwania na test2.go linii 6 (w pierwszym i jedynym wierszu kodu w funkcji main) i rozpocząć debugowanie sesja, widzę następujący wynik:

"/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 

Otrzymuję wynik programu poprawnie, ale Intellij nie zatrzymał się w wymaganym punkcie przerwania.

problem został odtworzony na Intellij 2017.1.3 z wtyczką Go Lang 0.171.1928 na MacOS Sierra 10.12.4.

aktualizacja

próbuje grać z Delve IntelliJ, aby starać się lepiej zrozumieć, co się dzieje:

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

potem stracony:

(dlv) step 

i otrzymali:

Command failed: could not find FDE for PC 0x78bc000 

czy nie rozumiem, jak korzystać z funkcji delve lub czy coś tu nie działa poprawnie?

aktualizacja

yeap .. z continue debugger działa prawidłowo z obu wersjach Delve (zainstalowany z homebrew i wersja IntelliJ za). ale wciąż intellij działa tak samo, nie zatrzymuje się na pułapkach. Tworzę punkt przerwania na test2.go w linii, gdy drukuję zmienną.

jakieś pomysły?

+0

Wyłącz ldflagi z konfiguracji uruchamiania i spróbuj ponownie. – dlsniper

+0

@dlsniper - wyniki są takie same – ufk

+1

Jaką wersję wtyczki IDE/Go posiadasz? Czy możesz podać więcej szczegółów na temat aplikacji, którą próbujesz debugować? Czy ma jakieś CGO? Czy korzystasz z dowiązań symbolicznych? Czy aplikacja jest open source, aby móc ją powielić? Dzięki – dlsniper

Odpowiedz

0

Ok. W końcu to dostałem. Zmieszałem się ze strukturą GOROOT i strukturą GOPATH, a mój projekt umieściłem w GOROOT zamiast GOPATH.

to, co zrobiłem, aby rozwiązać problem

ja całkowicie usunięte iść z brew uninstall --force go, a następnie ponownie zainstalować go z następujących zmiennych środowiskowych:

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

następnie umieściłem mój projekt na ~/golang/src/github.com/kfirufk/windy-server

i nareszcie mogłem poprawnie debugować aplikacje.

dziękuję wszystkim za pomoc! :)