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!