Maison  >  Article  >  développement back-end  >  Comment déboguer les programmes Go avec GoClipse : code assembleur vs code Go ?

Comment déboguer les programmes Go avec GoClipse : code assembleur vs code Go ?

DDD
DDDoriginal
2024-10-24 05:25:02925parcourir

How to Debug Go Programs with GoClipse: Assembly Code vs. Go Code?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn