Maison >développement back-end >Golang >Comment déboguer les programmes Go avec GoClipse : code assembleur vs code Go ?
Débogage des programmes Go avec GoClipse : code assembleur vs code Go
Lors du débogage de programmes Go à l'aide de GoClipse, vous pouvez rencontrer une situation où le le débogueur parcourt le code assembleur au lieu du code Go, même après avoir défini des points d'arrêt. Ceci est généralement dû à un paramètre inapproprié dans les options de configuration de lancement.
Comprendre la vue Debug
Lorsque votre programme Go s'arrête pendant le débogage, la vue Debug dans Eclipse s'affiche une trace de pile. S'il ressemble à ce qui suit :
<code class="text">Thread [1] 0 (Suspended : Breakpoint) main() at rt0_windows_amd64.s:15 0x42a400 KERNEL32!BaseThreadInitThunk() at 0x773259ed 0x0 </code>
Cela indique que le programme s'est automatiquement arrêté au niveau de la fonction "principale" au démarrage. Cependant, il ne s'agit pas de la fonction "principale" de Go mais plutôt d'une fonction "principale" interne d'exécution écrite en C.
Résoudre le problème
Pour résoudre ce problème, vérifiez les options de configuration de lancement et recherchez la première option. Il peut indiquer "Default main() (runtime/rt0_*)" ou "main.main() (source code input point)" ou quelque chose de similaire.
S'il est défini sur "Default main() (runtime /rt0_*)", remplacez-le par "main.main() (point d'entrée du code source)". Alternativement, vous pouvez simplement décocher l'option.
Une fois que vous avez apporté les modifications nécessaires, cliquez sur "Exécuter / Reprendre" (F8) pour continuer le débogage. Le débogueur va maintenant parcourir votre code Go plutôt que le code assembleur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!