首頁  >  文章  >  後端開發  >  如何使用 GoClipse 調試 Go 程式:彙編程式碼與 Go 程式碼?

如何使用 GoClipse 調試 Go 程式:彙編程式碼與 Go 程式碼?

DDD
DDD原創
2024-10-24 05:25:02925瀏覽

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

使用GoClipse 調試Go 程式:彙編程式碼與Go 程式碼

使用GoClipse 偵錯Go 程式時,您可能會遇到以下情況:即使在設定斷點之後,偵錯器也會逐步執行彙編程式碼而不是Go 程式碼。這通常是由於啟動配置選項中的設定不當造成的。

了解偵錯視圖

當您的 Go 程式在偵錯過程中停止時,Eclipse 中會顯示偵錯視圖堆疊追蹤。如果類似於以下內容:

<code class="text">Thread [1] 0 (Suspended : Breakpoint)   
main() at rt0_windows_amd64.s:15 0x42a400   
KERNEL32!BaseThreadInitThunk() at 0x773259ed    
0x0 </code>

這表示程式在啟動時已自動停止在「main」函數處。但是,這不是 Go“main”函數,而是用 C 編寫的內部運行時“main”函數。

解決問題

要解決此問題,檢查啟動設定選項並找到第一個選項。它可能會顯示“預設 main()(運行時/rt0_*)”或“main.main()(原始程式碼入口點)”或類似的內容。

如果它設定為“預設 main()(運行時) /rt0_*)”,將其變更為“main.main()(原始碼入口點)”。或者,您可以簡單地取消選取該選項。

進行必要的更改後,按一下「運行/恢復」(F8) 繼續偵錯。調試器現在將單步執行您的 Go 程式碼而不是彙編程式碼。

以上是如何使用 GoClipse 調試 Go 程式:彙編程式碼與 Go 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn