2017-08-09 26 views
4

我剛剛用Go語言創建了我的第一個"Hello World"程序,構建它並創建了二進制文件。在檢查二進制文件時,我在二進制文件中發現了對這個python script的引用。Go語言中runtime-gdb.py的作用是什麼?

該腳本的描述讀取

該腳本由GDB加載當它發現在編譯的二進制一個.debug_gdb_scripts 部。基於到運行時軟件包的路徑,這些連接器通過此路徑發出 路徑。

我不明白這一點的含義。那麼,什麼是runtime-gdb.py它和Go語言有什麼關係?

回答

6

如果您使用gdb調試器來調試程序,加載該腳本可以改進其與Go程序一起使用的功能,例如能夠查看地圖和切片內部的值(而不是將它們視爲不透明指針)並能夠列出和檢查goroutines(而不是本地線程)。 gdb使用Python進行擴展。

+0

是否有在調試模式下構建二進制文件的標誌?我不記得指定任何與調試相關的選項。我的意思是詢問是否可以選擇包含此腳本。 – Beginner

+1

@Beginner:它不包含在二進制文件中,它只在DWARF信息中被引用。您可以選擇使用'-w'鏈接標誌禁用DWARF生成,但通常沒有理由這樣做。 – JimB

+0

@JimB - 感謝您的輸入。 – Beginner

2

gdb在python中可編寫腳本。這是golang支持的腳本。