2017-08-09 53 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支持的脚本。