运行时-gdb.py在Go语言中的作用是什么?

4
我刚刚用Go语言创建了我的第一个“Hello World”程序,并构建了它并创建了二进制文件。在检查二进制文件时,我发现了对这个python脚本的引用,该脚本可以在运行时-gdb.py中找到。
这个脚本的描述如下:
“当GDB在编译的二进制文件中找到.debug_gdb_scripts部分时,将加载此脚本。 [68]l链接器根据运行时包的路径将其发出。”
我不太理解这个含义。那么,runtime-gdb.py是什么,它与Go语言有什么关系呢?
2个回答

6
如果您使用gdb调试器来调试程序,那么加载该脚本可以改善它与Go程序一起使用的功能,例如可以查看映射和切片内部的值(而不是将它们视为不透明指针),以及可以列出和检查goroutine(而不是本地线程)。gdb使用Python进行扩展。

是否有一个标志可以在调试模式下构建二进制文件?我不记得指定任何与调试相关的选项。我的意思是问是否可以将此脚本的包含设置为可选。 - Beginner
1
@初学者:它不包含在二进制文件中,只是在DWARF信息中通过名称引用。您可以使用“-w”链接标志选择性地禁用DWARF生成,但通常没有理由这样做。 - JimB
@JimB - 感谢您的建议。 - Beginner

2

gdb可以在Python中编写脚本。这是一个用于支持Golang的脚本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接