Heim  >  Artikel  >  Backend-Entwicklung  >  Warum sehe ich beim Debuggen mit GoClipse Assembler-Code anstelle von Go-Code?

Warum sehe ich beim Debuggen mit GoClipse Assembler-Code anstelle von Go-Code?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-23 22:49:30645Durchsuche

Why Am I Seeing Assembly Code Instead of Go Code When Debugging with GoClipse?

Debuggen von Go-Programmen mit GoClipse: Assembler-Code statt Go-Code-Problem

Beim Debuggen von Go-Programmen mit GoClipse kann es zu Situationen kommen, in denen die Der Debugger durchläuft Assembler-Code anstelle von Go-Code, selbst wenn Haltepunkte in Go-Programmzeilen festgelegt sind. Dieses Problem kann auftreten, wenn Sie den erforderlichen GNU Debugger (gdb) nicht installiert haben.

Um dieses Problem zu beheben, können Sie den Anweisungen zur Installation von gdb über HomeBrew folgen, wie Sie erwähnt haben. Nach der Installation von gdb kann jedoch immer noch das gleiche Problem auftreten.

Untersuchung der Debug-Ansicht

Wenn dieses Problem auftritt, überprüfen Sie die Debug-Ansicht. Wenn ein Stack-Trace angezeigt wird, der mit der „main“-Funktion beginnt, gefolgt von einer Zeilennummer in rt0_darwin_amd64.s für macOS-Systeme (rt0_windows_amd64.s für Windows-Systeme), zeigt dies an, dass der Debugger automatisch auf der internen Laufzeit „main“ gestoppt wurde "-Funktion, die in C geschrieben ist.

Anpassen der Startkonfigurationsoptionen

Um dieses Problem zu beheben, gehen Sie zu den Startkonfigurationsoptionen. Die erste Option steuert, ob das Programm bei dieser internen „Haupt“-Funktion anhalten soll. Sie können dies in „main.main“ ändern, um bei der Go-Hauptfunktion anzuhalten, oder die Option ganz deaktivieren, um das automatische Stoppen bei der „Haupt“-Laufzeitfunktion zu deaktivieren.

Sobald Sie die Startkonfigurationsoptionen angepasst haben, Sie sollten in der Lage sein, Ihre Go-Programme zu debuggen, ohne den Assembler-Code durchlaufen zu müssen. Klicken Sie auf Ausführen/Fortsetzen (F8), um mit dem Debuggen fortzufahren.

Das obige ist der detaillierte Inhalt vonWarum sehe ich beim Debuggen mit GoClipse Assembler-Code anstelle von Go-Code?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn