So debuggen Sie Go-Programme mit GoClipse: Debuggen von Assemblycode
Beim Debuggen von Go-Programmen mit GoClipse kann es zu unerwartetem Verhalten kommen, wenn der Debugger Schritte ausführt durch Assembler-Code anstelle von Go-Code. Dieses Problem kann dadurch entstehen, dass in der Debug-Ansicht ein Stack-Trace ähnlich dem folgenden angezeigt wird:
Thread [1] 0 (Suspended : Breakpoint) main() at rt0_windows_amd64.s:15 0x42a400 KERNEL32!BaseThreadInitThunk() at 0x773259ed 0x0
Ursache:
Dieses Phänomen tritt auf, wenn das Programm automatisch stoppt die interne Laufzeitfunktion „main“ beim Start. Diese Funktion ist in C geschrieben und enthält keinen Quellcode, sodass der Debugger Assemblercode anzeigt.
Lösung:
So lösen Sie dieses Problem:
Sobald dies erledigt ist, können Sie auf Ausführen/Fortsetzen (F8) klicken, um mit dem Debuggen fortzufahren. Der Debugger durchläuft jetzt Go-Code statt Assembler-Code. Wenn Sie diese Schritte befolgen, können Sie Go-Programme effizient debuggen, ohne dass dieses potenzielle Problem auftritt.
Das obige ist der detaillierte Inhalt vonSo debuggen Sie Go-Programme in GoClipse: Umgang mit Assembly-Code im Debugger?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!