Heim >Backend-Entwicklung >Golang >Wie vermeide ich, beim Debuggen von Go-Programmen in GoClipse in den Assembler-Code zu geraten?

Wie vermeide ich, beim Debuggen von Go-Programmen in GoClipse in den Assembler-Code zu geraten?

Linda Hamilton
Linda HamiltonOriginal
2024-10-23 23:19:30342Durchsuche

How to Avoid Stepping into Assembly Code while Debugging Go Programs in GoClipse?

Debuggen von Go-Programmen in GoClipse mit Assembler-Code

Beim Versuch, ein Go-Programm in GoClipse zu debuggen, stoßen Benutzer möglicherweise auf ein Problem mit dem Debugger Schritte durch Assembler-Code anstelle von Go-Code. Dies tritt trotz korrekter Installation von gdb zum Debuggen auf.

Wenn ein Haltepunkt gesetzt ist und das Programm durch den Eclipse-Debugger ausgeführt wird, gibt es Assembler-Codedateien wie „rt0_darwin_amd64.s“ ein und konzentriert sich auf Zeilen wie „MOVQ $_rt0_go (SB), AX.“ Dieses Verhalten kann das Debuggen erschweren.

Um dieses Problem zu beheben, überprüfen Sie den Inhalt der Debug-Ansicht, wenn das Go-Programm stoppt. Wenn ein Stack-Trace angezeigt wird, der mit „main() at rt0_darwin_amd64.s“ beginnt, weist dies darauf hin, dass der Debugger bei einer in C geschriebenen internen Laufzeit-„main“-Funktion angehalten hat.

Dieses Verhalten wird von der ersten gesteuert Option in den Startkonfigurationsoptionen. Um das Problem zu beheben, setzen Sie die Option auf „main.main“, um bei der eigentlichen Go-Hauptfunktion anzuhalten, oder deaktivieren Sie einfach die Option.

Alternativ können Sie dies tun, wenn der Debugger bei der internen Laufzeitfunktion „main“ stoppt Klicken Sie auf „Ausführen/Fortsetzen“ (F8), um die Ausführung fortzusetzen. Dadurch können Sie den Go-Code schrittweise durchlaufen und wie erwartet debuggen.

Das obige ist der detaillierte Inhalt vonWie vermeide ich, beim Debuggen von Go-Programmen in GoClipse in den Assembler-Code zu geraten?. 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