2017-05-18 4 views
7

J'ai la dernière IntelliJ Ultimate EAP et dernière Gogland et le problème se produit sur les deux sous MacOS Sierra.débogage aller l'application ne s'arrête pas aux points d'arrêt

Je suis en train de déboguer une application go en créant un profil de débogage pour Go Application et Run Kind est configuré pour Package, qui contient le nom du package du projet en cours.

sous Go tool arguments J'ai -ldflags="-linkmode internal" configuré.

Lorsque je démarre une session de débogage avec des points d'arrêt, elle s'exécute mais ne s'arrête pas à ces points d'arrêt.

qu'est-ce que je manque?

grâce

mise à jour

ok j'ai pu reproduire le problème avec le projet suivant:

test1.go contient:

package main 

const Numb uint64 = 5 

test2.go contient:

package main 

import "fmt" 

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

J'ai créé une configuration d'exécution/de débogage Go Application avec les paramètres suivants:

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

lorsque je choisis un point d'arrêt sur test2.go ligne 6 (la première et seule ligne de code dans la fonction principale) et je commence un débogage session, je vois la sortie suivante:

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

je reçois correctement la sortie du programme, mais Intellij n'a pas empêché dans le point d'arrêt requis.

le problème est reproduit sur Intellij 2017.1.3 avec Go Lang Plugin 0.171.1928 sur MacOS Sierra 10.12.4.

mise à jour

essayant de jouer avec Delve de IntelliJ pour essayer de mieux comprendre ce qui se passe:

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

j'exécuté:

(dlv) step 

et reçu:

Command failed: could not find FDE for PC 0x78bc000 

ai-je échoué à comprendre comment utiliser delve ou est-ce que quelque chose ne fonctionne pas correctement ici?

mise à jour

yeap .. avec continue le débogueur fonctionne correctement avec les deux versions de Delve (installé à partir homebrew et la version du IntelliJ). mais encore intellij fonctionne de la même manière, ne s'arrête pas aux points d'arrêt. Je crée un point d'arrêt à test2.go à la ligne lorsque j'imprime la variable.

des idées?

+0

Désactivez les ldflags de la configuration d'exécution et réessayez s'il vous plaît. – dlsniper

+0

@dlsniper - les résultats sont les mêmes – ufk

+1

Quelle version du plugin IDE/Go avez-vous? Pouvez-vous s'il vous plaît fournir plus de détails sur l'application que vous essayez de déboguer? A-t-il un CGO? Utilisez-vous des liens symboliques? L'application open source est-elle capable de répliquer ceci? Merci – dlsniper

Répondre

0

Ok .. Je l'ai enfin compris. Je me suis mélangé avec la structure GOROOT et la structure GOPATH et j'ai placé mon projet dans GOROOT au lieu de GOPATH.

ce que je l'ai fait pour résoudre le problème

J'ai complètement effacé aller avec brew uninstall --force go, réinstalle aller avec les variables d'environnement suivantes:

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

alors je placé mon projet à ~/golang/src/github.com/kfirufk/windy-server

et j'ai enfin pu déboguer correctement les applications.

merci à tous pour m'avoir aidé! :)